X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/825fe6086e463bfd069172bd45a6e39a83796d19..d19d875fd0b7da4e10227ee00bc2035b68f60f47:/src/s4u/s4u_actor.cpp diff --git a/src/s4u/s4u_actor.cpp b/src/s4u/s4u_actor.cpp index 173d6339ec..64d429e25b 100644 --- a/src/s4u/s4u_actor.cpp +++ b/src/s4u/s4u_actor.cpp @@ -78,23 +78,24 @@ void s4u::Actor::sleep(double duration) { simcall_process_sleep(duration); } -void s4u::Actor::execute(double flops) { - simcall_process_execute(NULL,flops,1.0/*priority*/,0./*bound*/, 0L/*affinity*/); +e_smx_state_t s4u::Actor::execute(double flops) { + smx_synchro_t s = simcall_process_execute(NULL,flops,1.0/*priority*/,0./*bound*/, 0L/*affinity*/); + return simcall_process_execution_wait(s); } -char *s4u::Actor::recvstr(Mailbox &chan) { - char *res=NULL; - size_t res_size=sizeof(res); +void *s4u::Actor::recv(Mailbox &chan) { + void *res=NULL; - - simcall_comm_recv(chan.getInferior(),&res,&res_size,NULL,NULL,NULL,-1 /* timeout */,-1 /*rate*/); + Comm c = Comm::recv_init(this, chan); + c.setDstData(&res,sizeof(res)); + c.wait(); return res; } -void s4u::Actor::sendstr(Mailbox &chan, const char*msg) { +void s4u::Actor::send(Mailbox &chan, void *payload, size_t simulatedSize) { Comm c = Comm::send_init(this,chan); - c.setRemains(strlen(msg)); - c.setSrcData(xbt_strdup(msg),sizeof(char*)); + c.setRemains(simulatedSize); + c.setSrcData(payload); c.wait(); }