version 1.15, 2008/06/19 17:57:01
|
version 1.16, 2008/08/07 18:03:48
|
|
|
// _idleThreads queue. | // _idleThreads queue. |
| |
ThreadReturnType(PEGASUS_THREAD_CDECL * work) (void *) = 0; | ThreadReturnType(PEGASUS_THREAD_CDECL * work) (void *) = 0; |
void *parm = 0; |
void *workParm = 0; |
Semaphore *blocking_sem = 0; | Semaphore *blocking_sem = 0; |
| |
try | try |
|
|
work = (ThreadReturnType(PEGASUS_THREAD_CDECL *) (void *)) | work = (ThreadReturnType(PEGASUS_THREAD_CDECL *) (void *)) |
myself->reference_tsd("work func"); | myself->reference_tsd("work func"); |
myself->dereference_tsd(); | myself->dereference_tsd(); |
parm = myself->reference_tsd("work parm"); |
workParm = myself->reference_tsd("work parm"); |
myself->dereference_tsd(); | myself->dereference_tsd(); |
blocking_sem = | blocking_sem = |
(Semaphore *) myself->reference_tsd("blocking sem"); | (Semaphore *) myself->reference_tsd("blocking sem"); |
|
|
{ | { |
PEG_TRACE_CSTRING(TRC_THREAD, Tracer::LEVEL4, | PEG_TRACE_CSTRING(TRC_THREAD, Tracer::LEVEL4, |
"Work starting."); | "Work starting."); |
work(parm); |
work(workParm); |
PEG_TRACE_CSTRING(TRC_THREAD, Tracer::LEVEL4, | PEG_TRACE_CSTRING(TRC_THREAD, Tracer::LEVEL4, |
"Work finished."); | "Work finished."); |
} | } |