Skip to main content

The 'EnhaaancedQueues' library contains the 'EnhQueue' class - coming with extended / enhanced (in particular portability) capabilities.

The 'EnhQueue' class is inherited from 'multiprocessing.queues.JoinableQueue' - which after that is enhanced to work properly on all main desktop platforms ('Windows', 'macOS' and 'Linux').

Windows:

Windows processes do not share memory, which means, shared objects have to be 'pickled' and transmitted to the respective subprocess via pipe - when given as parameters to (multiprocessing) process calls. The 'EnhQueue' class has been made pickable (have a look at it's '__ reduce __' method).

macOS:

The 'qsize' method of the 'multiprocessing.queues.JoinableQueue' does not work under some 'macOS'es (and maybe other *nixes); it might lead to a 'NotImplementedError'.

The 'EnhQueue' class wraps 'multiprocessing.queues.JoinableQueue' to correct this aspect. The additional lock used for that might also have a positive effect to the reliability of the methods 'empty' and 'full'.

Miscellaneous:

Shutting down an application with several processes properly is a delicate thing, if some of said processes crashed / got stuck. The 'EnhQueue' class has been equipped with a semi-blocking 'join' method - a 'join' with a timeout.

Due to the parallel nature of multiprocessing, emptying a queue reliable in a setup, where several processes could put another element in said queue during or after said emptying is a delicate thing too.

The 'EnhQueue' has been equipped with a 'clear' method emptying the queue in the most reliable and least blocking way possible - as known to the author yet. It in particular is designed to be useful during cleaning up when shutting down an application properly.


Further infomations and links can be found on my homepage https://www.blackward.de

Have Fun!

Release files for enhaaancedQueues 0.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for enhaaancedQueues 0.7
File Interpreter ABI Platform
enhaaancedQueues-0.7-py2.py3-none-any.whl Python 3, Python 2 none any Details

Release files / enhaaancedQueues-0.7-py2.py3-none-any.whl

Download URL enhaaancedQueues-0.7-py2.py3-none-any.whl
Size 8.3 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
d4c664eec5c9202826331b13a8294fad2b6007cb3993faceb72a8888fe333f5c
BLAKE2b-256 checksum
How to use checksums
c7a022a3fccb79b39d708c98b2716ff03042270b73ebd501af9e69173c3ef1e9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10

Release history Release notifications | RSS feed

This release

0.7 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page