-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathpackage.lisp
More file actions
44 lines (38 loc) · 1021 Bytes
/
package.lisp
File metadata and controls
44 lines (38 loc) · 1021 Bytes
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
;; package.lisp
;; I haven't decided yet if I want this file to be in src/ or root.
;; The #: before symbols in defpackage is considered a good practice...
;; to make the symbols read as uninterned and then...
;; interned into the new package by defpackage.
;; The #: notation helps avoid accidental...
;; namespace clutter and/or collisions during compilation or editing.
(defpackage :cl-freelock
(:use #:cl)
(:nicknames #:fl)
(:export
#:atomic-ref
#:make-atomic-ref
#:atomic-ref-value
#:cas
#:atomic-incf
#:memory-barrier
;; Lock-free Unbounded Queue
#:queue
#:make-queue
#:queue-push
#:queue-pop
#:queue-empty-p
;; Lock-free Bounded Queue
#:bounded-queue
#:make-bounded-queue
#:bounded-queue-push
#:bounded-queue-pop
#:bounded-queue-full-p
#:bounded-queue-empty-p
#:bounded-queue-capacity
#:bounded-queue-push-batch
#:bounded-queue-pop-batch
;; Lock-free SPSC Queue
#:spsc-queue
#:make-spsc-queue
#:spsc-push
#:spsc-pop))