From b171931829c14f0ad84cc15e2bf012560982bf75 Mon Sep 17 00:00:00 2001 From: degomme Date: Fri, 4 Mar 2016 14:10:28 +0100 Subject: [PATCH] This was not compiling when sizeof(unsigned long) != sizeof(void*) --- src/simix/BoostContext.cpp | 8 ++++---- src/simix/RawContext.cpp | 10 +++++----- src/simix/UContext.cpp | 8 ++++---- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/simix/BoostContext.cpp b/src/simix/BoostContext.cpp index 3b4e63f94b..9972e783b7 100644 --- a/src/simix/BoostContext.cpp +++ b/src/simix/BoostContext.cpp @@ -55,7 +55,7 @@ public: bool BoostContext::parallel_ = false; xbt_parmap_t BoostContext::parmap_ = nullptr; -unsigned long BoostContext::threads_working_ = 0; +uintptr_t BoostContext::threads_working_ = 0; xbt_os_thread_key_t BoostContext::worker_id_key_; unsigned long BoostContext::process_index_ = 0; BoostContext* BoostContext::maestro_context_ = nullptr; @@ -245,8 +245,8 @@ void BoostParallelContext::suspend() } else { XBT_DEBUG("No more processes to run"); - unsigned long worker_id = - (unsigned long) xbt_os_thread_get_specific(worker_id_key_); + uintptr_t worker_id = + (uintptr_t) xbt_os_thread_get_specific(worker_id_key_); next_context = static_cast( workers_context_[worker_id]); } @@ -269,7 +269,7 @@ void BoostParallelContext::stop() void BoostParallelContext::resume() { - unsigned long worker_id = __sync_fetch_and_add(&threads_working_, 1); + uintptr_t worker_id = __sync_fetch_and_add(&threads_working_, 1); xbt_os_thread_set_specific(worker_id_key_, (void*) worker_id); BoostParallelContext* worker_context = diff --git a/src/simix/RawContext.cpp b/src/simix/RawContext.cpp index 9cbb2df74d..83c3c7569a 100644 --- a/src/simix/RawContext.cpp +++ b/src/simix/RawContext.cpp @@ -85,7 +85,7 @@ ContextFactory* raw_factory() #ifdef HAVE_THREAD_CONTEXTS static xbt_parmap_t raw_parmap; static simgrid::simix::RawContext** raw_workers_context; /* space to save the worker context in each thread */ -static unsigned long raw_threads_working; /* number of threads that have started their work */ +static uintptr_t raw_threads_working; /* number of threads that have started their work */ static xbt_os_thread_key_t raw_worker_id_key; /* thread-specific storage for the thread id */ #endif #ifdef ADAPTIVE_THRESHOLD @@ -440,10 +440,10 @@ void RawContext::suspend_parallel() else { /* all processes were run, go to the barrier */ XBT_DEBUG("No more processes to run"); - unsigned long worker_id = (unsigned long)(uintptr_t) + uintptr_t worker_id = (uintptr_t) xbt_os_thread_get_specific(raw_worker_id_key); next_context = (RawContext*) raw_workers_context[worker_id]; - XBT_DEBUG("Restoring worker stack %lu (working threads = %lu)", + XBT_DEBUG("Restoring worker stack %zu (working threads = %zu)", worker_id, raw_threads_working); } @@ -469,8 +469,8 @@ void RawContext::resume_serial() void RawContext::resume_parallel() { #ifdef HAVE_THREAD_CONTEXTS - unsigned long worker_id = __sync_fetch_and_add(&raw_threads_working, 1); - xbt_os_thread_set_specific(raw_worker_id_key, (void*)(uintptr_t) worker_id); + uintptr_t worker_id = __sync_fetch_and_add(&raw_threads_working, 1); + xbt_os_thread_set_specific(raw_worker_id_key, (void*) worker_id); RawContext* worker_context = (RawContext*) SIMIX_context_self(); raw_workers_context[worker_id] = worker_context; XBT_DEBUG("Saving worker stack %lu", worker_id); diff --git a/src/simix/UContext.cpp b/src/simix/UContext.cpp index 1669ed8c14..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 @@ -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 -- 2.20.1