For Better Performance Please Use Chrome or Firefox Web Browser

do_event() source code

do_event() source code based on Contiki's source code 

Line# Code
245 static void
246 do_event(void)
247 {
248    static process_event_t ev;
249    static process_data_t data;
250    static struct process *receiver;
251    static struct process *p;
252  
253    /*
254     * If there are any events in the queue, take the first one and walk
255     * through the list of processes to see if the event should be
256     * delivered to any of them. If so, we call the event handler
257     * function for the process. We only process one event at a time and
258     * call the poll handlers inbetween.
259     */
260  
261    if(nevents > 0) {
262  
263      /* There are events that we should deliver. */
264      ev = events[fevent].ev;
265  
266      data = events[fevent].data;
267      receiver = events[fevent].p;
268  
269      /* Since we have seen the new event, we move pointer upwards
270       and decrease the number of events. */
271      fevent = (fevent + 1) % PROCESS_CONF_NUMEVENTS;
272      --nevents;
273  
274      /* If this is a broadcast event, we deliver it to all events, in
275        order of their priority. */
276     if(receiver == PROCESS_BROADCAST) {
277      for(p = process_list; p != NULL; p = p->next) {
278  
279         /* If we have been requested to poll a process, we do this in
280           between processing the broadcast event. */
281        if(poll_requested) {
282          do_poll();
283         }
284        call_process(p, ev, data);
285      }
286   } else {
287      /* This is not a broadcast event, so we deliver it to the
288      specified process. */
289      /* If the event was an INIT event, we should also update the
290         state of the process. */
291      if(ev == PROCESS_EVENT_INIT) {
292        receiver->state = PROCESS_STATE_RUNNING;
293      }
294  
295  /* Make sure that the process actually is running. */
296  call_process(receiver, ev, data);
297  }
298  }
299 }

 

ارتقاء امنیت وب با وف ایرانی

do_event() source code | Dr.Elham Mahmoudzadeh

Error

The website encountered an unexpected error. Please try again later.

ارتقاء امنیت وب با وف ایرانی