- // It's not started yet. Do it in one simcall
- if (p_srcBuff != NULL) {
- simcall_comm_send(p_sender->getInferior(), p_mailbox->getInferior(), p_remains, p_rate,
- p_srcBuff, p_srcBuffSize,
- p_matchFunction, p_copyDataFunction,
- p_userData, timeout);
- } else { // Receiver
- simcall_comm_recv(p_receiver->getInferior(), p_mailbox->getInferior(), p_dstBuff, &p_dstBuffSize,
- p_matchFunction, p_copyDataFunction,
- p_userData, timeout, p_rate);
- }
- p_state = finished;
-}
-
-s4u::Comm &s4u::Comm::send_async(s4u::Actor *sender, Mailbox &dest, void *data, int simulatedSize) {
- s4u::Comm &res = s4u::Comm::send_init(sender, dest);
-
- res.setRemains(simulatedSize);
- res.p_srcBuff = data;
- res.p_srcBuffSize = sizeof(void*);
-
- res.start();
- return res;