From: mquinson Date: Tue, 7 Dec 2010 14:15:09 +0000 (+0000) Subject: no need to lock the structure if we run in sequential X-Git-Tag: v3.6_beta2~858 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/57fef38e0df9ac287bebb39604e2bdcb9f84e5bf no need to lock the structure if we run in sequential git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@9065 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- diff --git a/src/simix/smx_smurf.c b/src/simix/smx_smurf.c index b01ce7b25e..0b61bea49e 100644 --- a/src/simix/smx_smurf.c +++ b/src/simix/smx_smurf.c @@ -24,9 +24,11 @@ void SIMIX_request_push(smx_req_t req) { req->issuer = SIMIX_process_self(); if (req->issuer != simix_global->maestro_process){ - xbt_os_mutex_acquire(sync_req_vector); + if (_surf_parallel_contexts) + xbt_os_mutex_acquire(sync_req_vector); xbt_dynar_set_as(req_vector, req->issuer->pid, smx_req_t, req); - xbt_os_mutex_release(sync_req_vector); + if (_surf_parallel_contexts) + xbt_os_mutex_release(sync_req_vector); req->issuer->request = req; DEBUG2("Yield process '%s' on request of type %d", req->issuer->name, req->call); SIMIX_process_yield(); @@ -38,13 +40,15 @@ void SIMIX_request_push(smx_req_t req) smx_req_t SIMIX_request_pop(void) { smx_req_t request = NULL; - xbt_os_mutex_acquire(sync_req_vector); + if (_surf_parallel_contexts) + xbt_os_mutex_acquire(sync_req_vector); while (xbt_dynar_length(req_vector)){ request = xbt_dynar_pop_as(req_vector, smx_req_t); if (request) break; } - xbt_os_mutex_release(sync_req_vector); + if (_surf_parallel_contexts) + xbt_os_mutex_release(sync_req_vector); return request; }