X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/6229ff3a39c8fb195846ea9eb67cf071654de597..edde8f7fbc1b74a81551bf9eb7bac1935b999296:/src/simix/smx_smurf.c diff --git a/src/simix/smx_smurf.c b/src/simix/smx_smurf.c index bb129ca776..f19303242c 100644 --- a/src/simix/smx_smurf.c +++ b/src/simix/smx_smurf.c @@ -5,24 +5,25 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(simix_smurf, simix, "Logging specific to SIMIX (SMURF)"); -/* FIXME: we may want to save the initialization of issuer... */ XBT_INLINE smx_req_t SIMIX_req_mine() { smx_process_t issuer = SIMIX_process_self(); return &issuer->request; } -void SIMIX_request_push() +/** + * \brief Makes the current process do a request to the kernel and yields + * until completion. + * \param self the current process + */ +void SIMIX_request_push(smx_process_t self) { - smx_process_t issuer = SIMIX_process_self(); - - if (issuer != simix_global->maestro_process){ - issuer->request.issuer = issuer; - XBT_DEBUG("Yield process '%s' on request of type %s (%d)", issuer->name, - SIMIX_request_name(issuer->request.call), issuer->request.call); - SIMIX_process_yield(); + if (self != simix_global->maestro_process) { + XBT_DEBUG("Yield process '%s' on request of type %s (%d)", self->name, + SIMIX_request_name(self->request.call), self->request.call); + SIMIX_process_yield(self); } else { - SIMIX_request_pre(&issuer->request, 0); + SIMIX_request_pre(&self->request, 0); } }