version 1.101, 2006/01/13 19:20:21
|
version 1.102, 2006/01/17 14:23:10
|
|
|
autoEntryMutex.unlock(); | autoEntryMutex.unlock(); |
o.enqueue(message); | o.enqueue(message); |
autoEntryMutex.lock(); | autoEntryMutex.lock(); |
|
// After enqueue a message and the autoEntryMutex has been released and locked again, |
|
// the array of _entries can be changed. The ArrayIterator has be reset with the original _entries. |
|
entries.reset(_entries); |
} | } |
} | } |
| |
|
|
int events = select(maxSocketCurrentPass, &fdread, NULL, NULL, &tv); | int events = select(maxSocketCurrentPass, &fdread, NULL, NULL, &tv); |
#endif | #endif |
autoEntryMutex.lock(); | autoEntryMutex.lock(); |
|
// After enqueue a message and the autoEntryMutex has been released and locked again, |
|
// the array of _entries can be changed. The ArrayIterator has be reset with the original _entries |
|
entries.reset(_entries); |
#ifdef PEGASUS_OS_TYPE_WINDOWS | #ifdef PEGASUS_OS_TYPE_WINDOWS |
if(events == SOCKET_ERROR) | if(events == SOCKET_ERROR) |
#else | #else |
|
|
autoEntryMutex.unlock(); | autoEntryMutex.unlock(); |
q->enqueue(msg); | q->enqueue(msg); |
autoEntryMutex.lock(); | autoEntryMutex.lock(); |
|
// After enqueue a message and the autoEntryMutex has been released and locked again, |
|
// the array of entries can be changed. The ArrayIterator has be reset with the original _entries |
|
entries.reset(_entries); |
entries[indx]._status = _MonitorEntry::IDLE; | entries[indx]._status = _MonitorEntry::IDLE; |
| |
return true; | return true; |