Implement error handling on process monitor exit.  Now, before sending any message to the monitor, the sender must check a "ready" channel.  Before exiting, the monitor records its exit error and closes this channel, ensuring that all later reads from the ready channel will immediately return false.
Implement error handling on process monitor exit.  Now, before
sending any message to the monitor, the sender must check a
"ready" channel.  Before exiting, the monitor records its exit
error and closes this channel, ensuring that all later reads
from the ready channel will immediately return false.

Inspired by
http://chplib.wordpress.com/2009/09/30/poison-concurrent-termination/

R=rsc
APPROVED=rsc
DELTA=47  (27 added, 11 deleted, 9 changed)
OCL=35782
CL=35784

tianon/debian-golang,pombredanne/go-deleteme,tv42/old-go,bdwalton/debian-golang,bdwalton/debian-golang,pombredanne/go-deleteme,bdwalton/debian-golang,tv42/old-go,tianon/debian-golang,gnanderson/go,h8liu/golang,ssrl/go,bdwalton/debian-golang,apparentlymart/golang,h8liu/golang,apparentlymart/golang,tianon/debian-golang,dsriram/golang,pombredanne/go-deleteme,apparentlymart/golang,ssrl/go,nightlyone/golang,ssrl/go,h8liu/golang,pombredanne/go-deleteme,nightlyone/golang,dsriram/golang,apparentlymart/golang,gnanderson/go,dsriram/golang,tv42/old-go,nightlyone/golang,h8liu/golang,tianon/debian-golang,ssrl/go,ssrl/go,gnanderson/go,pombredanne/go-deleteme,h8liu/golang,bdwalton/debian-golang,dsriram/golang,tianon/debian-golang,apparentlymart/golang,tv42/old-go,gnanderson/go,tv42/old-go,nightlyone/golang,tv42/old-go,dsriram/golang,dsriram/golang,nightlyone/golang,nightlyone/golang,ssrl/go,gnanderson/go,bdwalton/debian-golang,ssrl/go,tianon/debian-golang,apparentlymart/golang,bdwalton/debian-golang,bdwalton/debian-golang,nightlyone/golang,tianon/debian-golang,pombredanne/go-deleteme,h8liu/golang,apparentlymart/golang,dsriram/golang,tv42/old-go,gnanderson/go,pombredanne/go-deleteme,gnanderson/go,tianon/debian-golang,h8liu/golang