Messages in this thread | | | From | Roland McGrath <> | Subject | Re: [PATCH 3/3] Consolidate send_sigqueue and send_group_sigqueue | Date | Thu, 28 Feb 2008 12:14:50 -0800 (PST) |
| |
> > I'm not clear on how the already-queued case could ever happen. Do we > > really need that check at all? It shouldn't be possible for the timer to > > be firing when it's already queued, because it won't have been reloaded. > > It only reloads via do_schedule_next_timer after it's dequeued, or because > > a 1 return value said it never was queued. > > This is true for the posix timers, but posix cpu timers case is different. > Note the run_posix_cpu_timers()->cpu_timer_fire().
Really? It too reloads the CPU timer only when posix_timer_event returns nonzero, and otherwise expects do_schedule_next_timer to be called from signal dequeuing and call posix_cpu_timer_schedule to do the reload. I must be missing something (having written the code I am easily deluded into thinking I know what it's doing).
Thanks, Roland
| |