From: alegrand Date: Fri, 14 Jan 2005 19:47:24 +0000 (+0000) Subject: Not using MSG_suspend anymore in the internals X-Git-Tag: v3.3~4597 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/09f32d96bbc399a919b44b12f63ea054dcefda76?hp=1d2bb375b9ae908bb16a65a15e421d4bec2fb154 Not using MSG_suspend anymore in the internals git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@753 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- diff --git a/src/msg/global.c b/src/msg/global.c index 51297f4aea..0d5886eedc 100644 --- a/src/msg/global.c +++ b/src/msg/global.c @@ -195,9 +195,16 @@ MSG_error_t MSG_main(void) simdata_process_t p_simdata = (simdata_process_t) process->simdata; simdata_host_t h_simdata=(simdata_host_t)p_simdata->host->simdata; + fprintf(stderr,"MSG: %s(%d) on %s: ", process->name,p_simdata->PID, p_simdata->host->name); + + if (process->simdata->blocked) + fprintf(stderr,"[blocked] "); + if (process->simdata->suspended) + fprintf(stderr,"[suspended] "); + for (i=0; imax_channel; i++) { if (h_simdata->sleeping[i] == process) { fprintf(stderr,"Listening on channel %d.\n",i); diff --git a/src/msg/m_process.c b/src/msg/m_process.c index 67d2328da5..fc9d302112 100644 --- a/src/msg/m_process.c +++ b/src/msg/m_process.c @@ -277,8 +277,11 @@ MSG_error_t MSG_process_suspend(m_process_t process) simdata_task = simdata->waiting_task->simdata; + simdata->suspended = 1; + if(simdata->blocked) return MSG_OK; + xbt_assert0(((simdata_task->compute)||(simdata_task->comm))&& - !((simdata_task->comm)&&(simdata_task->comm)), + !((simdata_task->compute)&&(simdata_task->comm)), "Got a problem in deciding which action to choose !"); simdata->suspended = 1; if(simdata_task->compute) @@ -289,6 +292,7 @@ MSG_error_t MSG_process_suspend(m_process_t process) m_task_t dummy = MSG_TASK_UNINITIALIZED; dummy = MSG_task_create("suspended", 0.0, 0, NULL); + simdata = process->simdata; simdata->suspended = 1; __MSG_task_execute(process,dummy); surf_workstation_resource->extension_public->suspend(dummy->simdata->compute); @@ -354,7 +358,7 @@ int MSG_process_isSuspended(m_process_t process) -MSG_error_t __MSG_process_block() +MSG_error_t __MSG_process_block(void) { m_process_t process = MSG_process_self(); diff --git a/src/msg/private.h b/src/msg/private.h index f921e9c3a0..d7fa359e6b 100644 --- a/src/msg/private.h +++ b/src/msg/private.h @@ -85,7 +85,7 @@ void __MSG_task_execute(m_process_t process, m_task_t task); MSG_error_t __MSG_wait_for_computation(m_process_t process, m_task_t task); MSG_error_t __MSG_task_wait_event(m_process_t process, m_task_t task); -MSG_error_t __MSG_process_block(); +MSG_error_t __MSG_process_block(void); MSG_error_t __MSG_process_unblock(m_process_t process); int __MSG_process_isBlocked(m_process_t process);