void dInitODE() { int bInitResult = InternalInitODE(0); dIVERIFY(bInitResult); int ibAllocResult = InternalAllocateODEDataForThread(dAllocateMaskAll); dIVERIFY(ibAllocResult); }
void dxThreadPoolThreadInfo::WaitAndCloseThreadHandle(HANDLE thread_handle) { DWORD thread_wait_result = WaitForSingleObject(thread_handle, INFINITE); dICHECK(thread_wait_result == WAIT_OBJECT_0); BOOL thread_close_result = CloseHandle(thread_handle); dIVERIFY(thread_close_result); }
bool dxEventObject::InitializeObject(bool manual_reset, bool initial_state) { dIASSERT(!m_event_allocated); bool result = false; bool cond_allocated = false; do { int cond_result = pthread_cond_init(&m_event_cond, NULL); if (cond_result != EOK) { errno = cond_result; break; } cond_allocated = true; int mutex_result = pthread_mutex_init(&m_event_mutex, NULL); if (mutex_result != EOK) { errno = mutex_result; break; } m_event_manual = manual_reset; m_event_value = initial_state; m_event_allocated = true; result = true; } while (false); if (!result) { if (cond_allocated) { int cond_destroy_result = pthread_cond_destroy(&m_event_cond); dIVERIFY(cond_destroy_result == EOK); } } return result; }
bool dxThreadPoolThreadInfo::InitializeThreadAttributes(pthread_attr_t *thread_attr, size_t stack_size) { bool result = false; bool attr_inited = false; do { int init_result = pthread_attr_init(thread_attr); if (init_result != EOK) { errno = init_result; break; } attr_inited = true; int set_result; if ((set_result = pthread_attr_setdetachstate(thread_attr, PTHREAD_CREATE_JOINABLE)) != EOK || (set_result = pthread_attr_setinheritsched(thread_attr, PTHREAD_INHERIT_SCHED)) != EOK #if (HAVE_PTHREAD_ATTR_SETSTACKLAZY) || (set_result = pthread_attr_setstacklazy(thread_attr, PTHREAD_STACK_NOTLAZY)) != EOK #endif || (stack_size != 0 && (set_result = pthread_attr_setstacksize(thread_attr, stack_size)) != EOK)) { errno = set_result; break; } result = true; } while (false); if (!result) { if (attr_inited) { int destroy_result = pthread_attr_destroy(thread_attr); dIVERIFY(destroy_result == EOK); } } return result; }
void dxThreadPoolThreadInfo::FinalizeThreadAttributes(pthread_attr_t *thread_attr) { int destroy_result = pthread_attr_destroy(thread_attr); dIVERIFY(destroy_result == EOK); }