Completely rework the Win32 asynchronous events implementation.
It turns out the Win32 TimerQueue is not providing quite what we
want here, despite the fact that it looks a perfect match. Once
we start running the QA tests (slow_af.c in particular) it emits
timers all over the shop pretty quickly; starts out the way we'd
expect with the first four events, but quickly degrades to only
emitting timer callbacks for the last timer registered. And its
very hard to debug, being completely opaque to the caller.
So, instead provide an implementation of setitimer and something
to holdoff multiple callers inside the onalarm callback in AF.c,
and now we run with the same implementation as each of the other
supported PCP platforms. And the test passes, hooray.
Completely rework the Win32 asynchronous events implementation.
It turns out the Win32 TimerQueue is not providing quite what we
want here, despite the fact that it looks a perfect match. Once
we start running the QA tests (slow_af.c in particular) it emits
timers all over the shop pretty quickly; starts out the way we'd
expect with the first four events, but quickly degrades to only
emitting timer callbacks for the last timer registered. And its
very hard to debug, being completely opaque to the caller.
So, instead provide an implementation of setitimer and something
to holdoff multiple callers inside the onalarm callback in AF.c,
and now we run with the same implementation as each of the other
supported PCP platforms. And the test passes, hooray.