Magnus Hagander wrote:
>I think we agreed that we'd go with the polling method if it worked well
>enough, so we don't need a kernel driver. If that doesn't work out, the
>kernel driver would be the fallback method.
>
I think your code has almost certainly ruled out any necessity for a
kernel mode driver.
>
>Hmm. Depending on how often we need to poll (meaning how often we need
>to deliver signals), perhaps we can go with the WFSOEx method anyway.
>The code would be slightly easier:
>I've attached a version that uses this one instead.
>
>(You'd probably move the WaitFor()... call into the #define as well)
>
>Looking at this code, I'm thinking we can probably do away with the
>critical section alltogether. All that code now executes on the main
>thread. Does this seem correct?
>
>
>
I understood your first version better than I understand this one. What
calls __pg_poll_signals()? As I understand the first version, we
wouldn't need to put any polling calls into the main thread code - the
signal detector would just queue a call to pg_signal_apc() on the main
thread as needed, which would in turn do some cleanup and call the
signal handler. That seems to me to be *very* clean and nice. Am I
missing something? (As you can no doubt tell, IANAWP :-) )
BTW, well done!
cheers
andrew