| Line# | Code |
| 1 | //--- process.c\do_event:245-299 |
| 2 | proctype do_event(chan do_event_sync_ch) |
| 3 | { chan ret_chan = [0] of {int}; |
| 4 | mtype: process_event_t ev; mtype: process_data_t data; |
| 5 | int receiver, p, tmp; |
| 6 | if //process.c\do_event:261-298 |
| 7 | ::(nevents > 0) -> ev = events[fevent].ev; |
| 8 | data = events[fevent].data; receiver = events[fevent].p; |
| 9 | fevent = (fevent + 1) % PROCESS_CONF_NUMEVENTS; |
| 10 | nevents = nevents - 1; |
| 11 | if //-- Begin of process.c\do_event:276 - 297 |
| 12 | ::(receiver == PROCESS_BROADCAST) -> |
| 13 | p = process_list; //- Begin of process.c\do_event:277 - 285 |
| 14 | do |
| 15 | :: (p != NULL) -> //process.c\do_event:277 |
| 16 | if |
| 17 | :: ( poll_requested == True ) -> |
| 18 | run do_poll( ret_chan); //-Begin of process.c\do_event:282 |
| 19 | ret_chan ? tmp; //- End of process.c\do_event:282 |
| 20 | :: else -> skip; |
| 21 | fi; |
| 22 | call_process_params_chan ! p , ev , data ; //Begin of process.c\do_event:284 |
| 23 | run call_process( ret_chan,call_process_params_chan ); |
| 24 | ret_chan ? tmp; //End of process.c\do_event:284 |
| 25 | p = processes[p].next; |
| 26 | :: else-> break; |
| 27 | od//- End of process.c\do_event:277 - 285 |
| 28 | ::else -> |
| 29 | if :: ( ev == PROCESS_EVENT_INIT ) -> |
| 30 | processes[receiver ].state == PROCESS_STATE_RUNNING; |
| 31 | :: else -> skip; |
| 32 | fi; |
| 33 | call_process_params_chan ! receiver , ev , data;//Begin of process.c\do_event:296 |
| 34 | run call_process( ret_chan,call_process_params_chan); |
| 35 | ret_chan ? tmp;//End of process.c\do_event:296 |
| 36 | fi;//-- End of process.c\do_event:276 - 297 |
| 37 | ::else -> goto end; |
| 38 | fi; //process.c\do_event:261-298 |
| 39 | end : do_event_sync_ch ! 0; |
| 40 | }//---End of process.c\do_event:245-299 |
do_event() proctype
×
https://people.iut.ac.ir/en/mahmoudzadeh/doevent-proctype?view=qrcode