Class: Concurrent::Set
- Inherits:
-
SetImplementation
- Object
- Concurrent::Set
- Defined in:
- lib/concurrent-ruby/concurrent/set.rb
Overview
Note:
a += b
is not a thread-safe operation on
Concurrent::Set
. It reads Set a
, then it creates new Concurrent::Set
which is union of a
and b
, then it writes the union to a
.
The read and write are independent operations they do not form a single atomic
operation therefore when two +=
operations are executed concurrently updates
may be lost. Use #merge
instead.
A thread-safe subclass of Set. This version locks against the object
itself for every method call, ensuring only one thread can be reading
or writing at a time. This includes iteration methods like #each
.