blob: 91397cb83b3ee6020d29b319401be9a4a5c3019d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
(.require
[library
[lux (.except if loop)
["$" documentation]
[data
[text (.only \n)
["%" \\format (.only format)]]]
[macro
["[0]" template]]]]
[\\library
["[0]" /]])
(.def .public documentation
(.List $.Module)
($.module /._
""
[($.default /.semaphore_is_maxed_out)
($.default /.barrier)
($.documentation /.Semaphore
"A tool for controlling access to resources by multiple concurrent processes.")
($.documentation /.semaphore
""
[(semaphore initial_open_positions)])
($.documentation /.wait!
(format "Wait on a semaphore until there are open positions."
\n "After finishing your work, you must 'signal' to the semaphore that you're done.")
[(wait! semaphore)])
($.documentation /.signal!
"Signal to a semaphore that you're done with your work, and that there is a new open position."
[(signal! semaphore)])
($.documentation /.Mutex
"A mutual-exclusion lock that can only be acquired by one process at a time.")
($.documentation /.mutex
"Creates a brand-new mutex."
[(mutex _)])
($.documentation /.synchronize!
"Runs the procedure with exclusive control of the mutex."
[(synchronize! mutex procedure)])
($.documentation /.limit
"Produce a limit for a barrier.")
($.documentation /.Limit
"A limit for barriers.")
($.documentation /.Barrier
"A barrier that blocks all processes from proceeding until a given number of processes are parked at the barrier.")
($.documentation /.block!
"Wait on a barrier until all processes have arrived and met the barrier's limit.")]
[]))
|