'connect_input(other)
Connects the input of this tube to the output of another tube object.
Examples:
>>> def p(x): print x
>>> def recvone(n, data=[\'data\']):
...     while data: return data.pop()
...     raise EOFError
>>> a = tube()
>>> b = tube()
>>> a.recv_raw = recvone
>>> b.send_raw = p
>>> a.connected_raw = lambda d: True
>>> b.connected_raw = lambda d: True
>>> a.shutdown      = lambda d: True
>>> b.shutdown      = lambda d: True
>>> import time
>>> _=(b.connect_input(a), time.sleep(0.1))
data'

def connect_input(self, other):

    def pump():
        import sys as _sys
        while self.countdown_active():
            if (not (self.connected('send') and other.connected('recv'))):
                break
            try:
                data = other.recv(timeout=0.05)
            except EOFError:
                break
            if (not _sys):
                return
            if (not data):
                continue
            try:
                self.send(data)
            except EOFError:
                break
            if (not _sys):
                return
        self.shutdown('send')
        other.shutdown('recv')
    t = context.Thread(target=pump)
    t.daemon = True
    t.start()
