-
- if(is_main_thread()) {
- /* the main thread has called this function
- * - update the current context
- * - signal the condition of the process to run
- * - wait on its condition
- * - restore thr current contex
- */
- xbt_os_mutex_lock(master_mutex);
- /* update the current context */
- current_context = context;
- __xbt_process_schedule(context);
- xbt_os_cond_wait(master_cond, master_mutex);
- xbt_os_mutex_unlock(master_mutex);
- /* retore the current context */
- current_context = self;
-
-
- } else {
- /* a java thread has called this function
- * - update the current context
- * - signal the condition of the main thread
- * - wait on its condition
- * - restore thr current contex
- */
- xbt_os_mutex_lock(master_mutex);
- /* update the current context */