X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/7f4f03348bd07609e258eb3b545bdafc2c881847..5e6a418ff33f9fcc57a1a6bebb3af4598a4b2eff:/src/simix/RawContext.cpp diff --git a/src/simix/RawContext.cpp b/src/simix/RawContext.cpp index 31a950fc7a..9cbb2df74d 100644 --- a/src/simix/RawContext.cpp +++ b/src/simix/RawContext.cpp @@ -4,7 +4,7 @@ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ -/** \file Rawcontext.cpp +/** \file RawContext.cpp * Fast context switching inspired from SystemV ucontexts. * * In contrast to System V context, it does not touch the signal mask @@ -82,7 +82,7 @@ ContextFactory* raw_factory() // ***** Loads of static stuff -#ifdef CONTEXT_THREADS +#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 */ @@ -128,7 +128,7 @@ __asm__ ( ".text\n" ".globl _raw_makecontext\n" "_raw_makecontext:\n" -#elif defined(_WIN32) +#elif defined(_XBT_WIN32) ".text\n" ".globl raw_makecontext\n" "raw_makecontext:\n" @@ -164,7 +164,7 @@ __asm__ ( ".text\n" ".globl _raw_swapcontext\n" "_raw_swapcontext:\n" -#elif defined(_WIN32) +#elif defined(_XBT_WIN32) ".text\n" ".globl raw_swapcontext\n" "raw_swapcontext:\n" @@ -204,7 +204,7 @@ __asm__ ( ); #elif PROCESSOR_i686 __asm__ ( -#if defined(APPLE) || defined(_WIN32) +#if defined(APPLE) || defined(_XBT_WIN32) ".text\n" ".globl _raw_makecontext\n" "_raw_makecontext:\n" @@ -231,7 +231,7 @@ __asm__ ( ); __asm__ ( -#if defined(APPLE) || defined(_WIN32) +#if defined(APPLE) || defined(_XBT_WIN32) ".text\n" ".globl _raw_swapcontext\n" "_raw_swapcontext:\n" @@ -259,7 +259,7 @@ __asm__ ( /* If you implement raw contexts for other processors, don't forget to - update the definition of HAVE_RAWCTX in tools/cmake/CompleteInFiles.cmake */ + update the definition of HAVE_RAW_CONTEXTS in tools/cmake/CompleteInFiles.cmake */ raw_stack_t raw_makecontext(void* malloced_stack, int stack_size, rawctx_entry_point_t entry_point, void* arg) { @@ -285,7 +285,7 @@ RawContextFactory::RawContextFactory() #endif raw_context_parallel = SIMIX_context_is_parallel(); if (raw_context_parallel) { -#ifdef CONTEXT_THREADS +#ifdef HAVE_THREAD_CONTEXTS int nthreads = SIMIX_context_get_nthreads(); xbt_os_thread_key_create(&raw_worker_id_key); // TODO, lazily init @@ -304,7 +304,7 @@ RawContextFactory::RawContextFactory() RawContextFactory::~RawContextFactory() { -#ifdef CONTEXT_THREADS +#ifdef HAVE_THREAD_CONTEXTS if (raw_parmap) xbt_parmap_destroy(raw_parmap); xbt_free(raw_workers_context); @@ -379,7 +379,7 @@ void RawContextFactory::run_all_serial() void RawContextFactory::run_all_parallel() { -#ifdef CONTEXT_THREADS +#ifdef HAVE_THREAD_CONTEXTS raw_threads_working = 0; if (raw_parmap == nullptr) raw_parmap = xbt_parmap_new( @@ -427,7 +427,7 @@ void RawContext::suspend_serial() void RawContext::suspend_parallel() { -#ifdef CONTEXT_THREADS +#ifdef HAVE_THREAD_CONTEXTS /* determine the next context */ smx_process_t next_work = (smx_process_t) xbt_parmap_next(raw_parmap); RawContext* next_context = nullptr; @@ -468,7 +468,7 @@ void RawContext::resume_serial() void RawContext::resume_parallel() { -#ifdef CONTEXT_THREADS +#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); RawContext* worker_context = (RawContext*) SIMIX_context_self();