Skip to content

Stateful Non-blocking multiprocessing pipe library for python3

License

Notifications You must be signed in to change notification settings

maxtwen/pipe-nonblock

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pipe-nonblock Build Status

Non-blocking multiprocessing pipe

Installing

pip install pipe_nonblock

Supported versions

  • Python 3.4+

Usage

from pipe_nonblock import Pipe

c1, c2 = Pipe(duplex=True, conn1_nonblock=True, conn2_nonblock=True) # create a new duplex non-blocking pipe
assert len(list(c2.recv(32))) == 0                                   # try receive data from a connection, it's empty at the moment 
c1.send('foo')                                                       # send python string object
buf, = c2.recv(32)                                                   # recv return generator with received objects
assert buf == 'foo'
c2.send('bar')
buf, = c1.recv(32)
assert buf == 'bar'

Overview of Pipe function

def Pipe(duplex, conn1_nonblock, conn1_nonblock) -> Tuple[connection1, connection2]:
parameter type description
duplex bool If duplex is True (the default) then the pipe is bidirectional. If duplex is False then the pipe is unidirectional: conn1 can only be used for receiving messages and conn2 can only be used for sending messages.
conn1_nonblock bool If conn1_nonblock is True then the connection1 is non-blocking
conn2_nonblock bool If conn2_nonblock is True then the connection2 is non-blocking

About

Stateful Non-blocking multiprocessing pipe library for python3

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages