1 = qu
2 3 ===== observable signal channels
4 5 simple channels that act as breakers or momentary one-shot triggers.
6 7 can enable logging to get detailed information on channel state, and channels do
8 not panic if closed channels are attempted to be closed or signalled with.
9 10 provides a neat function based syntax for usage.
11 12 wait function does require use of the `<-` receive operator prefix to be used in
13 a select statement.
14 15 == usage
16 17 === creating channels:
18 19 ==== unbuffered
20 21 ----
22 newSigChan := qu.T()
23 ----
24 25 ==== buffered
26 27 ----
28 newBufferedSigChan := qu.Ts(5)
29 ----
30 31 ==== closing
32 33 ----
34 newSigChan.Q()
35 ----
36 37 ==== signalling
38 39 ----
40 newBufferedSigChan.Signal()
41 ----
42 43 ==== logging features
44 45 ----
46 numberOpenUnbufferedChannels := GetOpenUnbufferedChanCount()
47 48 numberOpenBufferedChannels := GetOpenBufferedChanCount()
49 ----
50 51 print a list of closed and open channels known by qu:
52 53 ----
54 PrintChanState()
55 ----
56 57 == garbage collection
58 59 this library automatically cleans up closed channels once a minute to free
60 resources that have become unused.