Skip to main content

Non-blocking multiprocessing pipe

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pipe_nonblock-0.4.tar.gz (3.9 kB view hashes)

Uploaded source

Built Distribution

pipe_nonblock-0.4-py3-none-any.whl (5.3 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page