*/
void MC_trans_intercept_waitany(xbt_dynar_t comms)
{
+ unsigned int index = 0;
+ smx_comm_t comm = NULL;
mc_transition_t trans = NULL;
mc_state_t current_state = NULL;
if(!mc_replay_mode){
MC_SET_RAW_MEM;
- trans = MC_trans_waitany_new(comms);
current_state = (mc_state_t)
xbt_fifo_get_item_content(xbt_fifo_get_first_item(mc_stack));
- xbt_setset_set_insert(current_state->created_transitions, trans);
- xbt_setset_set_insert(current_state->transitions, trans);
+ xbt_dynar_foreach(comms, index, comm){
+ trans = MC_trans_wait_new(comm);
+ xbt_setset_set_insert(current_state->created_transitions, trans);
+ xbt_setset_set_insert(current_state->transitions, trans);
+ }
MC_UNSET_RAW_MEM;
}
SIMIX_process_yield();
MC_SET_RAW_MEM;
current_state = (mc_state_t)
xbt_fifo_get_item_content(xbt_fifo_get_first_item(mc_stack));
- for(i=min; i <= max; i++){
+ for(i=min; i <= max; i++){
trans = MC_trans_random_new(i);
xbt_setset_set_insert(current_state->created_transitions, trans);
xbt_setset_set_insert(current_state->transitions, trans);
if(t1->process == t2->process)
return FALSE;
- if(t1->type == mc_isend && t2->type == mc_irecv)
+ if(t1->type != t2->type)
+ return FALSE;
+
+/* if(t1->type == mc_isend && t2->type == mc_irecv)
return FALSE;
if(t1->type == mc_irecv && t2->type == mc_isend)
- return FALSE;
+ return FALSE;*/
if(t1->type == mc_random || t2->type == mc_random)
return FALSE;
&& t1->wait.comm->dst_buff != t2->wait.comm->dst_buff
&& t2->wait.comm->dst_buff != t1->wait.comm->src_buff)
return FALSE;
-
+
+
return TRUE;
}
\ No newline at end of file