def make_or_pipe(pipe):
p1 = OrPipe(pipe)<EOL>p2 = OrPipe(pipe)<EOL>p1._partner = p2<EOL>p2._partner = p1<EOL>return p1, p2<EOL>
wraps a pipe into two pipe-like objects which are "or"d together to
affect the real pipe. if either returned pipe is set, the wrapped pipe
is set. when both are cleared, the wrapped pipe is cleared.