Restarting asynchronous handlers

From: Eric Roman (
Date: Fri Jun 28 2002 - 11:52:43 PDT

What's the story for synchronous and asynchronous handlers at restart?  I
keep forgetting the answer.

So we want to have the async. handler running concurrently w/ the 
application threads during checkpoint time.  When the async
handler thread completes its work, it calls back in, then the
synchronous handlers callback, then the context is dumped.

True?  So it's

1: Async handler runs
2: Async handler completes and calls back into kernel
3: Application threads interrupted w/ signal
4: Synchronous handlers execute
5: Synchronous handlers complete checkpoint and call back into kernel
6: Context for this thread is written

Now on restart:

1: Context for this thread is read
2: Synchronous handlers resume execution
3: Synchronous handlers complete restart and call back into kernel
4: All threads (app + async) allowed to continue execution

I think what's described above is the correct thing to do.  But, we might
allow 2, 3, and 4 to take place concurrently, or even in the reverse order.

Thoughts anyone?

Eric Roman                       Future Technologies Group
510-486-6420                     Lawrence Berkeley National Laboratory