final
class
CountdownLatch extends AnyRef
Value Members
-
final
def
!=(arg0: Any): Boolean
-
final
def
##(): Int
-
final
def
==(arg0: Any): Boolean
-
final
def
asInstanceOf[T0]: T0
-
-
def
clone(): AnyRef
-
val
count: UIO[Int]
-
val
countDown: UIO[Unit]
-
-
-
def
finalize(): Unit
-
final
def
getClass(): Class[_]
-
def
hashCode(): Int
-
final
def
isInstanceOf[T0]: Boolean
-
-
final
def
notify(): Unit
-
final
def
notifyAll(): Unit
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
-
def
toString(): String
-
final
def
wait(): Unit
-
final
def
wait(arg0: Long, arg1: Int): Unit
-
final
def
wait(arg0: Long): Unit
A synchronization aid that allows one or more fibers to wait until a set of operations being performed in other fibers completes.
A
CountDownLatchis initialized with a given count. Theawaitmethod block until the current count reaches zero due to invocations of thecountDownmethod, after which all waiting fibers are released and any subsequent invocations ofawaitreturn immediately. This is a one-shot phenomenon -- the count cannot be reset. If you need a version that resets the count, consider using a CyclicBarrier.A
CountDownLatchis a versatile synchronization tool and can be used for a number of purposes. ACountDownLatchinitialized with a count of one serves as a simple on/off latch, or gate: all fibers invokingawaitwait at the gate until it is opened by a fiber invokingcountDown. ACountDownLatchinitialized to N can be used to make one fiber wait until N fibers have completed some action, or some action has been completed N times.A useful property of a
CountDownLatchis that it doesn't require that fibers callingcountDownwait for the count to reach zero before proceeding, it simply prevents any fiber from proceeding past anawaituntil all fibers could pass.