- break;
-
- case REQ_COMM_WAITANY:
- type = bprintf("WaitAny");
- args = bprintf("-");
- /* FIXME: improve output */
- break;
-
- case REQ_COMM_TESTANY:
- type = bprintf("TestAny");
- args = bprintf("-");
- /* FIXME: improve output */
- break;
-
- default:
- THROW_UNIMPLEMENTED;
+ }
+ break;
+ case SIMCALL_COMM_TEST:
+ act = req->comm_test.comm;
+ if(act->comm.src_proc == NULL || act->comm.dst_proc == NULL){
+ type = xbt_strdup("Test FALSE");
+ p = pointer_to_string(act);
+ args = bprintf("comm=%s", p);
+ }else{
+ type = xbt_strdup("Test TRUE");
+ p = pointer_to_string(act);
+ args = bprintf("comm=%s [(%lu)%s -> (%lu)%s]", p,
+ act->comm.src_proc->pid, act->comm.src_proc->name,
+ act->comm.dst_proc->pid, act->comm.dst_proc->name);
+ }
+ break;
+
+ case SIMCALL_COMM_WAITANY:
+ type = xbt_strdup("WaitAny");
+ p = pointer_to_string(xbt_dynar_get_as(req->comm_waitany.comms, value, smx_action_t));
+ args = bprintf("comm=%s (%d of %lu)", p,
+ value+1, xbt_dynar_length(req->comm_waitany.comms));
+ break;
+
+ case SIMCALL_COMM_TESTANY:
+ if(value == -1){
+ type = xbt_strdup("TestAny FALSE");
+ args = xbt_strdup("-");
+ }else{
+ type = xbt_strdup("TestAny");
+ args = bprintf("(%d of %lu)", value+1, xbt_dynar_length(req->comm_testany.comms));
+ }
+ break;
+
+ default:
+ THROW_UNIMPLEMENTED;