From: Tobias C. R. <tc...@fr...> - 2010-04-19 18:31:47
|
It's causing me severe headache, and I've spent all the day on it with despair. So I thought I'd need some fresh input. Can anyone think of scenarios that cause deadlines to be dropped? Whatever hint is appreciated just to give fresh air. What I see is that ... at 0.010 in thread A logs event X (next deadline at 0.050) at 0.170 in thread B logs event Y ... ... As there's no other event logged between 0.010, and 0.170, (GC's are logged, too), I assume that at that point a process context switch occurs. The next time I see thread A is much much later at forced teardown, in which case it logs NIL as next deadline. It seems to me that somehow the deadline is dropped due to that context switch and not properly restored. Can anyone describe how a process context switch is performed? There's an hardware timer which causes an interrupt into the OS after the time quantum has exhausted? Does the process see anything of this? On reentrance? Event X is actually a possibly-blocking operation (boils down to condition-wait) so it shouldn't exhaust the time quantum but go back into the kernel via a syscall. -T. |