use 'request of death' to shut down processors

@EasonLiao sorry I keep going back and forth on this, but I think we should enqueue a special message to tell the processor to get out of the loop instead of using the interrupt. Interrupts are a bit tricky to handle because the thread might not be blocked when you call interrupt, and you need to check the status using isInterrupted().