XNSim/XNSimHtml/node_modules/ffi-napi/src/threaded_callback_invokation.cc

32 lines
689 B
C++
Raw Normal View History

2025-04-28 12:25:20 +08:00
#include "ffi.h"
namespace FFI {
ThreadedCallbackInvokation::ThreadedCallbackInvokation(callback_info* cbinfo, void* retval, void** parameters) {
m_cbinfo = cbinfo;
m_retval = retval;
m_parameters = parameters;
uv_mutex_init(&m_mutex);
uv_mutex_lock(&m_mutex);
uv_cond_init(&m_cond);
}
ThreadedCallbackInvokation::~ThreadedCallbackInvokation() {
uv_mutex_unlock(&m_mutex);
uv_cond_destroy(&m_cond);
uv_mutex_destroy(&m_mutex);
}
void ThreadedCallbackInvokation::SignalDoneExecuting() {
uv_mutex_lock(&m_mutex);
uv_cond_signal(&m_cond);
uv_mutex_unlock(&m_mutex);
}
void ThreadedCallbackInvokation::WaitForExecution() {
uv_cond_wait(&m_cond, &m_mutex);
}
}