void c_ExternalThreadEventWaitHandle::initialize(AsioExternalThreadEvent* event, ObjectData* priv_data) { setState(STATE_WAITING); m_event = event; m_privData = priv_data; // this wait handle is owned by existence of unprocessed event incRefCount(); if (isInContext()) { registerToContext(); } auto session = AsioSession::Get(); if (UNLIKELY(session->hasOnExternalThreadEventCreateCallback())) { session->onExternalThreadEventCreate(this); } }
void c_ExternalThreadEventWaitHandle::initialize( AsioExternalThreadEvent* event, ObjectData* priv_data ) { auto const session = AsioSession::Get(); setState(STATE_WAITING); setContextIdx(session->getCurrentContextIdx()); m_event = event; m_privData = priv_data; if (isInContext()) { registerToContext(); } if (UNLIKELY(session->hasOnExternalThreadEventCreate())) { session->onExternalThreadEventCreate(this); } }