X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/d3e063c03559fb73eaf01865a4455f4646981416..b171931829c14f0ad84cc15e2bf012560982bf75:/src/simix/UContext.cpp diff --git a/src/simix/UContext.cpp b/src/simix/UContext.cpp index 45b50be5d9..6d583168d0 100644 --- a/src/simix/UContext.cpp +++ b/src/simix/UContext.cpp @@ -68,7 +68,7 @@ namespace simix { #ifdef HAVE_THREAD_CONTEXTS static xbt_parmap_t sysv_parmap; static simgrid::simix::ParallelUContext** sysv_workers_context; /* space to save the worker's context in each thread */ -static unsigned long sysv_threads_working; /* number of threads that have started their work */ +static uintptr_t sysv_threads_working; /* number of threads that have started their work */ static xbt_os_thread_key_t sysv_worker_id_key; /* thread-specific storage for the thread id */ #endif static unsigned long sysv_process_index = 0; /* index of the next process to run in the @@ -233,7 +233,7 @@ UContext::UContext(std::function code, } #ifdef HAVE_MC - if (MC_is_active() && code) { + if (MC_is_active() && has_code()) { MC_register_stack_area(this->stack_, process, &(this->uc_), smx_context_usable_stack_size); } @@ -316,7 +316,7 @@ void ParallelUContext::resume() { #ifdef HAVE_THREAD_CONTEXTS // What is my containing body? - unsigned long worker_id = __sync_fetch_and_add(&sysv_threads_working, 1); + uintptr_t worker_id = __sync_fetch_and_add(&sysv_threads_working, 1); // Store the number of my containing body in os-thread-specific area : xbt_os_thread_set_specific(sysv_worker_id_key, (void*) worker_id); // Get my current soul: @@ -373,8 +373,8 @@ void ParallelUContext::suspend() XBT_DEBUG("No more processes to run"); // Get back the identity of my body that was stored when starting // the scheduling round - unsigned long worker_id = - (unsigned long) xbt_os_thread_get_specific(sysv_worker_id_key); + uintptr_t worker_id = + (uintptr_t) xbt_os_thread_get_specific(sysv_worker_id_key); // Deduce the initial soul of that body next_context = (ParallelUContext*) sysv_workers_context[worker_id]; // When given that soul, the body will wait for the next scheduling round