+ eDebug("before: %d", m_state.value());
+ /* the thread might already run. */
+ if (sync())
+ return -1;
+
+ eDebug("after: %d", m_state.value());
+ assert(m_state.value() == 1); /* sync postconditions */
+ assert(!m_alive);
+ m_state.down();
+
+ m_alive = 1;
+
+ /* start thread. */