blob: f7e5259f9fa8763173f901da9370066cba4afbcc (
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
|
;;;; TODO
;; TODO: Add a wg:clear
(in-package :wait-group)
(defclass wait-group ()
((counter
:initform 0
:accessor counter
:documentation "TODO"))
(:documentation "TODO"))
(defun make-wait-group ()
"TODO"
(make-instance 'wait-group))
(defgeneric add (wait-group &optional amount)
(:documentation "TODO"))
(defmethod add ((wait-group wait-group) &optional (amount 1))
"TODO"
(incf (counter wait-group) amount))
(defgeneric done (wait-group)
(:documentation "TODO"))
(defmethod done ((wait-group wait-group))
"TODO"
(decf (counter wait-group)))
(defgeneric wait (wait-group)
(:documentation "TODO"))
(defmethod wait ((wait-group wait-group))
"TODO"
(loop until (= (counter wait-group) 0)))
|