- DEBUG3("Msg_waitSignal(m_process=%p %s/%s)",
- m_process,m_process->name,m_process->simdata->m_host->name);
- if (!m_process){
- jxbt_throw_notbound(env,"process",jprocess);
- return;
- }
-
- s_process = m_process->simdata->s_process;
-
- if (s_process == NULL) {
- jxbt_throw_notbound(env,"SIMIX process",jprocess);
- return;
- }
-
- ctx_mutex = SIMIX_process_get_jmutex(s_process);
- ctx_cond = SIMIX_process_get_jcond(s_process);
-
- creation_mutex = xbt_creation_mutex_get();
- creation_cond = xbt_creation_cond_get();
-
- xbt_os_mutex_lock(creation_mutex);
- xbt_os_mutex_lock(ctx_mutex);
- xbt_os_cond_signal( creation_cond );
- xbt_os_mutex_unlock( creation_mutex );
- xbt_os_cond_wait(ctx_cond, ctx_mutex);
- xbt_os_mutex_unlock(ctx_mutex);