Do NOT use permanently-register-io-thread-event in Edwin.
Edwin does not consume the IO in the thread event. This worked in a
uni-processing world where another thread could consume the IO in
round-robin fashion, but in an SMPing world there is no way to know
when it is appropriate to signal another event. In a naive
implementation (without special handling of these events), an idle
processor would spin, queuing MANY "IO ready" events to one thread
until another thread consumed the IO.
Edwin's X11 and console display types now block for IO on multiple
descriptors, the X or tty descriptor PLUS the subprocess output
descriptors. They no longer use permanent IO thread events to handle
the latter.
Edwin's remaining uses of permanently-register-io-thread-event are in
single-threaded OS2 and Win32 worlds. The runtime's only uses are in
the OS2 and X11 graphics devices where the IO *is* consumed during the
event.