Skip to content

Commit

Permalink
Fixed threading issue on windows
Browse files Browse the repository at this point in the history
Cong Liu authored on 26 Dec 2014
  • Loading branch information
kjunichi committed Feb 18, 2015
1 parent e2cf481 commit e22ea8f
Showing 1 changed file with 10 additions and 10 deletions.
20 changes: 10 additions & 10 deletions src/threaded_callback_invokation.cc
Original file line number Diff line number Diff line change
Expand Up @@ -6,23 +6,23 @@ ThreadedCallbackInvokation::ThreadedCallbackInvokation(callback_info *cbinfo, vo
m_retval = retval;
m_parameters = parameters;

pthread_mutex_init(&m_mutex, NULL);
pthread_mutex_lock(&m_mutex);
pthread_cond_init(&m_cond, NULL);
uv_mutex_init(&m_mutex);
uv_mutex_lock(&m_mutex);
uv_cond_init(&m_cond);
}

ThreadedCallbackInvokation::~ThreadedCallbackInvokation() {
pthread_mutex_unlock(&m_mutex);
pthread_cond_destroy(&m_cond);
pthread_mutex_destroy(&m_mutex);
uv_mutex_unlock(&m_mutex);
uv_cond_destroy(&m_cond);
uv_mutex_destroy(&m_mutex);
}

void ThreadedCallbackInvokation::SignalDoneExecuting() {
pthread_mutex_lock(&m_mutex);
pthread_cond_signal(&m_cond);
pthread_mutex_unlock(&m_mutex);
uv_mutex_lock(&m_mutex);
uv_cond_signal(&m_cond);
uv_mutex_unlock(&m_mutex);
}

void ThreadedCallbackInvokation::WaitForExecution() {
pthread_cond_wait(&m_cond, &m_mutex);
uv_cond_wait(&m_cond, &m_mutex);
}

0 comments on commit e22ea8f

Please sign in to comment.