version 1.33, 2003/03/20 15:44:43
|
version 1.34, 2003/03/20 15:51:27
|
|
|
// first go thread the dead q and clean it up as much as possible | // first go thread the dead q and clean it up as much as possible |
while(_dead.count() > 0) | while(_dead.count() > 0) |
{ | { |
|
Tracer::trace(TRC_THREAD, Tracer::LEVEL4, "ThreadPool:: removing and joining dead thread"); |
#if !defined(PEGASUS_PLATFORM_HPUX_ACC) && !defined(PEGASUS_PLATFORM_LINUX_IA64_GNU) |
|
PEGASUS_STD(cout) << "ThreadPool:: removing and joining dead thread" << PEGASUS_STD(endl); |
|
#endif |
|
Thread *dead = _dead.remove_first(); | Thread *dead = _dead.remove_first(); |
if(dead == 0) | if(dead == 0) |
throw NullPointer(); | throw NullPointer(); |
|
|
else | else |
{ | { |
// deadlocked threads | // deadlocked threads |
#if !defined(PEGASUS_PLATFORM_HPUX_ACC) && !defined(PEGASUS_PLATFORM_LINUX_IA64_GNU) |
Tracer::trace(TRC_THREAD, Tracer::LEVEL4, "Killing a deadlocked thread"); |
PEGASUS_STD(cout) << "Killing a deadlocked thread" << PEGASUS_STD(endl); |
|
#endif |
|
th->cancel(); | th->cancel(); |
delete th; | delete th; |
} | } |