if (!p->m_state.value())
{
p->m_state.up();
- assert(p->m_state.value() == 1);
+ ASSERT(p->m_state.value() == 1);
}
+
+ p->thread_finished();
}
void *eThread::wrapper(void *ptr)
return -1;
eDebug("after: %d", m_state.value());
- assert(m_state.value() == 1); /* sync postconditions */
- assert(!m_alive);
+ ASSERT(m_state.value() == 1); /* sync postconditions */
+ ASSERT(!m_alive);
m_state.down();
m_alive = 1;
int res;
m_state.down(); /* this might block */
res = m_alive;
- assert(m_state.value() == 0);
+ ASSERT(m_state.value() == 0);
m_state.up();
return res; /* 0: thread is guaranteed not to run. 1: state unknown. */
}
-void eThread::sendSignal(int sig)
+int eThread::sendSignal(int sig)
{
if (m_alive)
- pthread_kill(the_thread, sig);
+ return pthread_kill(the_thread, sig);
else
eDebug("send signal to non running thread");
+ return -1;
}
void eThread::kill(bool sendcancel)
void eThread::hasStarted()
{
- assert(!m_state.value());
+ ASSERT(!m_state.value());
m_state.up();
}