From 57fef38e0df9ac287bebb39604e2bdcb9f84e5bf Mon Sep 17 00:00:00 2001 From: mquinson Date: Tue, 7 Dec 2010 14:15:09 +0000 Subject: [PATCH] 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 --- src/simix/smx_smurf.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) 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; } -- 2.20.1