version 1.42, 2006/01/30 16:16:46
|
version 1.43, 2006/07/11 18:39:28
|
|
|
| |
| |
AsyncOpNode::AsyncOpNode(void) | AsyncOpNode::AsyncOpNode(void) |
: _client_sem(0), _request(true), _response(true), |
: _client_sem(0), _request(), _response(), |
_state(0), _flags(0), _offered_count(0), _total_ops(0), _completed_ops(0), | _state(0), _flags(0), _offered_count(0), _total_ops(0), _completed_ops(0), |
_user_data(0), _completion_code(0), _op_dest(0), | _user_data(0), _completion_code(0), _op_dest(0), |
_parent(0), _children(true), _async_callback(0),__async_callback(0), |
_parent(0), _children(), _async_callback(0),__async_callback(0), |
_callback_node(0), _callback_response_q(0), | _callback_node(0), _callback_response_q(0), |
_callback_ptr(0), _callback_parameter(0), | _callback_ptr(0), _callback_parameter(0), |
_callback_handle(0), _callback_notify(0), _callback_request_q(0) | _callback_handle(0), _callback_notify(0), _callback_request_q(0) |
|
|
| |
AsyncOpNode::~AsyncOpNode(void) | AsyncOpNode::~AsyncOpNode(void) |
{ | { |
_request.empty_list(); |
_request.clear(); |
_response.empty_list(); |
_response.clear(); |
} | } |
| |
void AsyncOpNode::_reset(unlocked_dq<AsyncOpNode> *dst_q) |
void AsyncOpNode::_reset(List<AsyncOpNode,NullLock> *dst_q) |
{ | { |
AsyncOpNode *child = _children.remove_first(); |
AsyncOpNode *child = _children.remove_front(); |
while( child != 0 ) | while( child != 0 ) |
{ | { |
child->_reset(dst_q); | child->_reset(dst_q); |
child = _children.remove_first(); |
child = _children.remove_front(); |
} | } |
| |
_parent = 0; | _parent = 0; |
_request.empty_list(); |
_request.clear(); |
_response.empty_list(); |
_response.clear(); |
| |
//_operation_list.reset(); | //_operation_list.reset(); |
_state = 0; | _state = 0; |
|
|
_callback_handle = 0; | _callback_handle = 0; |
_callback_notify = 0; | _callback_notify = 0; |
_callback_request_q = 0; | _callback_request_q = 0; |
dst_q->insert_first(this); |
dst_q->insert_front(this); |
while ( _client_sem.count() ) | while ( _client_sem.count() ) |
_client_sem.wait(); | _client_sem.wait(); |
PEGASUS_ASSERT( _client_sem.count() == 0 ); | PEGASUS_ASSERT( _client_sem.count() == 0 ); |
|
|
"\tcallback node %p; callback rp q %p; callback ptr %p\n" \ | "\tcallback node %p; callback rp q %p; callback ptr %p\n" \ |
"\tcallback parm %p; callback handle %p; callback notify %p\n" \ | "\tcallback parm %p; callback handle %p; callback notify %p\n" \ |
"\tcallback rq q %p; service %p; thread %p\n\n", | "\tcallback rq q %p; service %p; thread %p\n\n", |
this, _request.count(), _response.count(), |
this, _request.size(), _response.size(), |
_state, _flags, _op_dest, _callback_node, _callback_response_q, | _state, _flags, _op_dest, _callback_node, _callback_response_q, |
_callback_ptr, _callback_parameter, _callback_handle, _callback_notify, | _callback_ptr, _callback_parameter, _callback_handle, _callback_notify, |
_callback_request_q, _service_ptr, _thread_ptr); | _callback_request_q, _service_ptr, _thread_ptr); |
|
|
"\tcallback node %p; callback rp q %p; callback ptr %p\n" \ | "\tcallback node %p; callback rp q %p; callback ptr %p\n" \ |
"\tcallback parm %p; callback handle %p; callback notify %p\n" \ | "\tcallback parm %p; callback handle %p; callback notify %p\n" \ |
"\tcallback rq q %p; service %p; thread %p\n\n", | "\tcallback rq q %p; service %p; thread %p\n\n", |
this, _request.count(), _response.count(), |
this, _request.size(), _response.size(), |
_state, _flags, _op_dest, _callback_node, _callback_response_q, | _state, _flags, _op_dest, _callback_node, _callback_response_q, |
_callback_ptr, _callback_parameter, _callback_handle, _callback_notify, | _callback_ptr, _callback_parameter, _callback_handle, _callback_notify, |
_callback_request_q, _service_ptr, _thread_ptr); | _callback_request_q, _service_ptr, _thread_ptr); |