version 1.23, 2002/05/28 18:38:49
|
version 1.24, 2002/05/28 20:05:35
|
|
|
| |
// #ifdef ENABLETIMEOUTWORKAROUNDHACK | // #ifdef ENABLETIMEOUTWORKAROUNDHACK |
// << Wed Mar 6 12:30:38 2002 mdd >> | // << Wed Mar 6 12:30:38 2002 mdd >> |
// static Mutex handleEnqueue_mut = Mutex(); |
static Mutex handleEnqueue_mut = Mutex(); |
// Boolean LockAcquired = false; |
Boolean LockAcquired = false; |
// #endif | // #endif |
| |
| |
// #ifdef ENABLETIMEOUTWORKAROUNDHACK | // #ifdef ENABLETIMEOUTWORKAROUNDHACK |
// << Wed Mar 6 12:30:48 2002 mdd >> | // << Wed Mar 6 12:30:48 2002 mdd >> |
// if (pegasus_thread_self() != handleEnqueue_mut.get_owner()) |
if (pegasus_thread_self() != handleEnqueue_mut.get_owner()) |
// { |
{ |
// handleEnqueue_mut.lock(pegasus_thread_self()); |
handleEnqueue_mut.lock(pegasus_thread_self()); |
// LockAcquired = true; |
LockAcquired = true; |
// } |
} |
// #endif | // #endif |
| |
switch (message->getType()) | switch (message->getType()) |
|
|
| |
// #ifdef ENABLETIMEOUTWORKAROUNDHACK | // #ifdef ENABLETIMEOUTWORKAROUNDHACK |
// << Wed Mar 6 12:31:03 2002 mdd >> | // << Wed Mar 6 12:31:03 2002 mdd >> |
// if (LockAcquired) |
if (LockAcquired) |
// { |
{ |
// handleEnqueue_mut.unlock(); |
handleEnqueue_mut.unlock(); |
// } |
} |
// #endif | // #endif |
PEG_METHOD_EXIT(); | PEG_METHOD_EXIT(); |
} | } |
|
|
fd_set fdread, fdwrite; | fd_set fdread, fdwrite; |
do | do |
{ | { |
|
|
struct timeval tv = { 0, 0 }; | struct timeval tv = { 0, 0 }; |
| |
FD_ZERO(&fdread); | FD_ZERO(&fdread); |
|
|
} | } |
else | else |
break; | break; |
} while(events != 0 ); |
} while(events != 0 && _dying.value() == 0); |
return handled_events; | return handled_events; |
} | } |
| |