⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 async_cancel.cpp

📁 ACE自适配通信环境(ADAPTIVE Communication Environment)是可以自由使用、开放源码的面向对象(OO)框架(Framework)
💻 CPP
字号:
// Async_Cancel.cpp,v 1.2 2004/06/10 22:43:04 shuston Exp#include "ace/OS_NS_unistd.h"#include "ace/Task.h"#include "ace/Log_Msg.h"#if defined (ACE_HAS_PTHREADS)// Only works on Pthreads...// Listing 1 code/ch13class CanceledTask : public ACE_Task<ACE_MT_SYNCH>{public:  virtual int svc (void)  {    ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%t) Starting thread\n")));    if (this->set_cancel_mode () < 0)      return -1;    while (1)      {        // Put this thread in a compute loop.. no        // cancellation points are available.      }  }  int set_cancel_mode (void)  {    cancel_state new_state;    // Set the cancel state to asynchronous and enabled.    new_state.cancelstate = PTHREAD_CANCEL_ENABLE;    new_state.canceltype  = PTHREAD_CANCEL_ASYNCHRONOUS;    if (ACE_Thread::setcancelstate (new_state, 0) == -1)      ACE_ERROR_RETURN ((LM_ERROR,                         ACE_TEXT ("%p\n"),                         ACE_TEXT ("cancelstate")), -1);    return 0;  }};// Listing 1// Listing 2 code/ch13int ACE_TMAIN (int, ACE_TCHAR *[]){  CanceledTask task;  task.activate ();  ACE_OS::sleep (1);  ACE_Thread_Manager::instance ()->cancel_task (&task, 1);  task.wait ();  return 0;}// Listing 2#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)template class ACE_Task<ACE_MT_SYNCH>;#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)pragma instantiate ACE_Task<ACE_MT_SYNCH>;#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */#else  /* ACE_HAS_PTHREADS */int ACE_TMAIN (int, ACE_TCHAR *[]){  puts ("This example works on Pthreads platforms.\n");  return 0;}#endif /* ACE_HAS_PTHREADS */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -