contiki-os/contiki — pull request #599 by hexluthor (2014-03-19 16:02:18+00:00)
Title: CC2538: Poll all processes before going to sleep in case some are pending on PROCESS_WAIT_UNTIL()

This platform goes to sleep when there are no more process events in the queue, but it doesn't check for processes that are pending on non-event-related conditions, for example PROCESS_WAIT_UNTIL(), or in my case PT_SEM_WAIT(). The result is that these processes aren't serviced until another unrelated event occurs and after significant time has passed.

My fix: when the main loop would otherwise go to sleep, it instead polls every process once, then services any events that may result from the series of polls, then finally goes to sleep.