Skip to content

bug: faster-fifo does *not* mimic the interface of multiprocessing.queue #42

@no2chem

Description

@no2chem

In the documentation for faster-fifo, it states:

Completely mimics the interface of the standard multiprocessing.Queue,

But it does not, because the standard Queue.put interface specifies timeout=None.

put(obj[, block[, timeout]])
Put obj into the queue. If the optional argument block is True (the default) and timeout is None (the default), block if necessary until a free slot is available. 

Using multiprocessing.Queue.put(item) would never result in Queue.Full being raised. However, since timeout is set to Float(10) in faster-fifo, "dropping in" faster-fifo would result in Queue.Full being raised if the queue is full and the wait times out.

Moreover, I don't think the current code properly handles timeout=None.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions