version 1.43, 2002/04/25 17:46:03
|
version 1.44, 2002/04/30 21:55:12
|
|
|
| |
while ( service->_die.value() == 0 ) | while ( service->_die.value() == 0 ) |
{ | { |
if(service->_incoming.count() > 0 ) |
|
{ |
|
try | try |
{ | { |
operation = service->_incoming.remove_first(); |
operation = service->_incoming.remove_first_wait(); |
} | } |
catch(ListClosed & ) | catch(ListClosed & ) |
{ | { |
|
|
service->_handle_incoming_operation(operation); | service->_handle_incoming_operation(operation); |
} | } |
} | } |
if( service->_callback.count() > 0 ) |
|
{ |
|
service->_callback.lock(); |
|
operation = service->_callback.next(0); |
|
while( operation != NULL ) |
|
{ |
|
if( ASYNC_OPSTATE_COMPLETE & operation->read_state()) |
|
{ |
|
operation = service->_callback.remove_no_lock(operation); |
|
service->_callback.unlock(); |
|
PEGASUS_ASSERT(operation != NULL); |
|
operation->_thread_ptr = myself; |
|
operation->_service_ptr = service; |
|
service->_handle_async_callback(operation); |
|
service->_callback.lock(); |
|
operation = service->_callback.next(operation); |
|
continue; |
|
} |
|
pegasus_yield(); |
|
operation = service->_callback.next(operation); |
|
} |
|
service->_callback.unlock(); |
|
} |
|
if( (service->_incoming.count() == 0) && (service->_callback.count() == 0 ) ) |
|
myself->sleep(1); |
|
else |
|
myself->thread_switch(); |
|
} |
|
| |
myself->exit_self( (PEGASUS_THREAD_RETURN) 1 ); | myself->exit_self( (PEGASUS_THREAD_RETURN) 1 ); |
return(0); | return(0); |
|
|
capabilities, | capabilities, |
mask, | mask, |
_queueId); | _queueId); |
|
msg->dest = CIMOM_Q_ID; |
|
|
Boolean registered = false; | Boolean registered = false; |
AsyncReply *reply = static_cast<AsyncReply *>(SendWait( msg )); | AsyncReply *reply = static_cast<AsyncReply *>(SendWait( msg )); |
| |
|
|
capabilities, | capabilities, |
mask); | mask); |
| |
|
req->dest = CIMOM_Q_ID; |
|
|
AsyncMessage *reply = SendWait(req); | AsyncMessage *reply = SendWait(req); |
if(reply) | if(reply) |
{ | { |