60 lines
1.0 KiB
Plaintext
60 lines
1.0 KiB
Plaintext
= qu
|
|
|
|
===== observable signal channels
|
|
|
|
simple channels that act as breakers or momentary one-shot triggers.
|
|
|
|
can enable logging to get detailed information on channel state, and channels do
|
|
not panic if closed channels are attempted to be closed or signalled with.
|
|
|
|
provides a neat function based syntax for usage.
|
|
|
|
wait function does require use of the `<-` receive operator prefix to be used in
|
|
a select statement.
|
|
|
|
== usage
|
|
|
|
=== creating channels:
|
|
|
|
==== unbuffered
|
|
|
|
----
|
|
newSigChan := qu.T()
|
|
----
|
|
|
|
==== buffered
|
|
|
|
----
|
|
newBufferedSigChan := qu.Ts(5)
|
|
----
|
|
|
|
==== closing
|
|
|
|
----
|
|
newSigChan.Q()
|
|
----
|
|
|
|
==== signalling
|
|
|
|
----
|
|
newBufferedSigChan.Signal()
|
|
----
|
|
|
|
==== logging features
|
|
|
|
----
|
|
numberOpenUnbufferedChannels := GetOpenUnbufferedChanCount()
|
|
|
|
numberOpenBufferedChannels := GetOpenBufferedChanCount()
|
|
----
|
|
|
|
print a list of closed and open channels known by qu:
|
|
|
|
----
|
|
PrintChanState()
|
|
----
|
|
|
|
== garbage collection
|
|
|
|
this library automatically cleans up closed channels once a minute to free
|
|
resources that have become unused. |