version 1.5, 2001/12/25 08:26:09
|
version 1.6, 2001/12/28 17:15:37
|
|
|
{ | { |
_cleanup.insert_first(cu); | _cleanup.insert_first(cu); |
} | } |
catch(IPCException& e) |
catch(IPCException&) |
{ | { |
delete cu; | delete cu; |
throw; | throw; |
|
|
{ | { |
cu = _cleanup.remove_first() ; | cu = _cleanup.remove_first() ; |
} | } |
catch(IPCException& e) |
catch(IPCException&) |
{ | { |
PEGASUS_ASSERT(0); | PEGASUS_ASSERT(0); |
} | } |
|
|
{ | { |
cleanup_pop(true); | cleanup_pop(true); |
} | } |
catch(IPCException& e) |
catch(IPCException&) |
{ | { |
PEGASUS_ASSERT(0); | PEGASUS_ASSERT(0); |
break; | break; |
|
|
deadlock_timer = (struct timeval *)myself->reference_tsd("deadlock timer"); | deadlock_timer = (struct timeval *)myself->reference_tsd("deadlock timer"); |
myself->dereference_tsd(); | myself->dereference_tsd(); |
} | } |
catch(IPCException & e) |
catch(IPCException &) |
{ | { |
myself->exit_self(0); | myself->exit_self(0); |
} | } |
|
|
parm = myself->reference_tsd("work parm"); | parm = myself->reference_tsd("work parm"); |
myself->dereference_tsd(); | myself->dereference_tsd(); |
} | } |
catch(IPCException & e) |
catch(IPCException &) |
{ | { |
myself->exit_self(0); | myself->exit_self(0); |
} | } |
|
|
pool->_running.remove((void *)myself); | pool->_running.remove((void *)myself); |
pool->_link_pool(myself); | pool->_link_pool(myself); |
} | } |
catch(IPCException & e) |
catch(IPCException &) |
{ | { |
myself->exit_self(0); | myself->exit_self(0); |
} | } |
|
|
th = _pool.remove_first(); | th = _pool.remove_first(); |
} | } |
} | } |
catch(TimeOut & to) |
catch(TimeOut &) |
{ | { |
if(_current_threads < _max_threads) | if(_current_threads < _max_threads) |
{ | { |
|
|
{ | { |
q->try_lock(); | q->try_lock(); |
} | } |
catch(AlreadyLocked & a) |
catch(AlreadyLocked &) |
{ | { |
q++; | q++; |
continue; | continue; |
|
|
{ | { |
dtp = (struct timeval *)th->try_reference_tsd("deadlock timer"); | dtp = (struct timeval *)th->try_reference_tsd("deadlock timer"); |
} | } |
catch(AlreadyLocked & a) |
catch(AlreadyLocked &) |
{ | { |
th = q->next(th); | th = q->next(th); |
continue; | continue; |