ACE
6.1.0
|
#include "ace/TSS_T.h"
#include "ace/Thread_Manager.h"
#include "ace/Dynamic.h"
#include "ace/Object_Manager.h"
#include "ace/Singleton.h"
#include "ace/Auto_Ptr.h"
#include "ace/Guard_T.h"
#include "ace/Time_Value.h"
#include "ace/OS_NS_sys_time.h"
#include "ace/Truncate.h"
Defines | |
#define | ACE_FIND(OP, INDEX) ACE_Thread_Descriptor *INDEX = OP; \ |
#define | ACE_THR_OP(OP, STATE) |
#define | ACE_EXECUTE_OP(OP, ARG) |
#define ACE_EXECUTE_OP | ( | OP, | |
ARG | |||
) |
ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1)); \ ACE_ASSERT (this->thr_to_be_removed_.is_empty ()); \ ACE_FIND (this->find_thread (t_id), ptr); \ if (ptr == 0) \ { \ errno = ENOENT; \ return -1; \ } \ int const result = OP (ptr, ARG); \ ACE_Errno_Guard error (errno); \ while (! this->thr_to_be_removed_.is_empty ()) { \ ACE_Thread_Descriptor * td = 0; \ this->thr_to_be_removed_.dequeue_head (td); \ this->remove_thr (td, 1); \ } \ return result
#define ACE_FIND | ( | OP, | |
INDEX | |||
) | ACE_Thread_Descriptor *INDEX = OP; \ |
#define ACE_THR_OP | ( | OP, | |
STATE | |||
) |
int result = OP (td->thr_handle_); \ if (result == -1) { \ if (errno != ENOTSUP) \ this->thr_to_be_removed_.enqueue_tail (td); \ return -1; \ } \ else { \ ACE_SET_BITS (td->thr_state_, STATE); \ return 0; \ }