📄 waiter.cpp
字号:
// Waiter.cpp,v 1.2 2005/08/17 15:24:48 jwillemsen Exp#include "ace/Proactor.h"#include "JAWS/Waiter.h"#include "JAWS/IO_Handler.h"ACE_RCSID(JAWS, Waiter, "Waiter.cpp,v 1.2 2005/08/17 15:24:48 jwillemsen Exp")JAWS_Waiter::JAWS_Waiter (void) : iter_ (*this){}JAWS_Waiter::~JAWS_Waiter (void){}JAWS_Waiter_Base_Iterator &JAWS_Waiter::iter (void){ return this->iter_;}intJAWS_Waiter::index (void){#if 0 // A future version of ACE will support this. ACE_Thread_ID tid = ACE_OS::thr_self ();#else // Do it this way for now ACE_thread_t thr_name; thr_name = ACE_OS::thr_self (); JAWS_Thread_ID tid (thr_name);#endif /* 0 */ return JAWS_Waiter_Base::index (tid);}JAWS_IO_Handler *JAWS_Waiter::wait_for_completion (int i){ JAWS_IO_Handler *ioh; JAWS_IO_Handler **iohptr; iohptr = (i >= 0) ? this->find_by_index (i) : this->find_by_index (this->index ()); while (*iohptr == 0) if (ACE_Proactor::instance ()->handle_events () == -1) { ACE_ERROR ((LM_ERROR, "%p\n", "JAWS_Waiter::wait_for_completion")); return 0; } ioh = *iohptr; *iohptr = 0; ioh->lock (); ioh->release (); return ioh;}#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)template class JAWS_Assoc_Array<JAWS_Thread_ID, JAWS_IO_Handler *>;template class JAWS_Assoc_Array_Iterator<JAWS_Thread_ID, JAWS_IO_Handler *>;template class ACE_Singleton<JAWS_Waiter, ACE_SYNCH_MUTEX>;#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)#pragma instantiate JAWS_Assoc_Array<JAWS_Thread_ID, JAWS_IO_Handler *>#pragma instantiate JAWS_Assoc_Array_Iterator<JAWS_Thread_ID, JAWS_IO_Handler *>#pragme instantiate ACE_Singleton<JAWS_Waiter, ACE_SYNCH_MUTEX>#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -