From: markls Date: Sun, 23 Dec 2007 06:37:02 +0000 (+0000) Subject: accidently tried to compare action to state. now fixed. X-Git-Tag: v3.3~696 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/e759b094e418c94354a054dd0b52034d5cbe3e85 accidently tried to compare action to state. now fixed. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@5157 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- diff --git a/src/smpi/smpi_receiver.c b/src/smpi/smpi_receiver.c index 34a6280c1b..9f4771edaa 100644 --- a/src/smpi/smpi_receiver.c +++ b/src/smpi/smpi_receiver.c @@ -20,6 +20,8 @@ int smpi_receiver(int argc, char **argv) xbt_fifo_item_t request_item; xbt_fifo_item_t message_item; + e_surf_action_state_t state; + self = SIMIX_process_self(); // make sure root is done before own initialization @@ -66,11 +68,12 @@ int smpi_receiver(int argc, char **argv) NULL != message_item; message_item = xbt_fifo_get_next_item(message_item)) { message = xbt_fifo_get_item_content(message_item); + state = SIMIX_action_get_state(message->action); if ( request->comm == message->comm && (MPI_ANY_SOURCE == request->src || request->src == message->src) && (MPI_ANY_TAG == request->tag || request->tag == message->tag) && - (message->action != SURF_ACTION_READY && message->action != SURF_ACTION_RUNNING) + (state != SURF_ACTION_READY && state != SURF_ACTION_RUNNING) ) { xbt_fifo_remove_item(request_queue, request_item); xbt_fifo_remove_item(message_queue, message_item); @@ -86,6 +89,8 @@ stopsearch: SIMIX_process_suspend(self); } else { + // FIXME: check action status for bad messages + SIMIX_mutex_lock(request->mutex); memcpy(request->buf, message->buf, request->datatype->size * request->count); request->src = message->src;