BETAmodules.com is in beta — open to partnerships & joint ventures.Build with us

improved-queue

v1.0RubyGems· Ruby

A simple elaboration on Ruby's native SizedQueue which allows using the queue object to re-awaken a blocked thread and cause it to abandon its blocking enqueue/dequeue operation. Useful for simplifying program logic, reducing the need for external flags/Muteces (yes, I said Muteces), and for cleanly resolving queues on program termination without risk of data loss or deadlock. Why use this queue? There are two reasons. For one thing, under several circumstances it is _considerably_ faster than Ruby's native SizedQueue. I admit I'm not entirely sure why, but I have tested this on multiple platforms and it seems to hold true as a generality. You can feel free to confirm or dispel that this advantage holds for your use case at your own leisure. The second reason is the aforementioned simplification of program logic. In the case that all data passing through the queues must be preserved on program termination, SizedQueue can require some elaborate trickery to ensure that even the most remote possibility of deadlock is removed. ImprovedSizedQueue solves this problem by making it possible to use the queue to pass control messages between threads, irrespective of the queue's actual content.

The verdict
Abandoned. Last published 12 years ago. No recent activity — look for a maintained alternative.
No recent activity — look for a maintained alternative.
Live from the RubyGems registry · derived rules, not AI
How it scores
MaintenanceAbandoned
PopularityNiche
SecurityClean
LicenseCopyleft
DepsZero deps
Maintenance
Last published 12 years ago.
Popularity
6 downloads / week
Security
No known advisories for this version (OSV).
License
GPL-3.0
Dependencies
No runtime dependencies
Recent releases
  • 1.012 years ago
improved-queue — A simple elaboration on Ruby's native SizedQueue which allows using the queue object to re-awaken a blocked thread and cause it to abandon its blocking enqueue/dequeue operation. Useful for simplifying program logic, reducing the need for external flags/Muteces (yes, I said Muteces), and for cleanly resolving queues on program termination without risk of data loss or deadlock. Why use this queue? There are two reasons. For one thing, under several circumstances it is _considerably_ faster than Ruby's native SizedQueue. I admit I'm not entirely sure why, but I have tested this on multiple platforms and it seems to hold true as a generality. You can feel free to confirm or dispel that this advantage holds for your use case at your own leisure. The second reason is the aforementioned simplification of program logic. In the case that all data passing through the queues must be preserved on program termination, SizedQueue can require some elaborate trickery to ensure that even the most remote possibility of deadlock is removed. ImprovedSizedQueue solves this problem by making it possible to use the queue to pass control messages between threads, irrespective of the queue's actual content. (Ruby / RubyGems) · Modules