@@ -35,6 +35,9 @@ public class Synchronized<Value> {
35
35
#elseif os(Linux) || os(Android)
36
36
/// A lock type appropriate for the current platform.
37
37
var lock : UnsafeMutablePointer < pthread_mutex_t >
38
+ #elseif os(FreeBSD)
39
+ /// A lock type appropriate for the current platform.
40
+ var lock : UnsafeMutablePointer < pthread_mutex_t ? >
38
41
#elseif os(Windows)
39
42
var lock : UnsafeMutablePointer < SRWLOCK >
40
43
#else
@@ -53,6 +56,10 @@ public class Synchronized<Value> {
53
56
lock = UnsafeMutablePointer< pthread_mutex_t> . allocate( capacity: 1 )
54
57
lock. initialize ( to: pthread_mutex_t ( ) )
55
58
pthread_mutex_init ( lock, nil )
59
+ #elseif os(FreeBSD)
60
+ lock = UnsafeMutablePointer< pthread_mutex_t?> . allocate( capacity: 1 )
61
+ lock. initialize ( to: nil )
62
+ pthread_mutex_init ( lock, nil )
56
63
#elseif os(Windows)
57
64
lock = UnsafeMutablePointer< SRWLOCK> . allocate( capacity: 1 )
58
65
InitializeSRWLock ( lock)
@@ -77,6 +84,9 @@ public class Synchronized<Value> {
77
84
#elseif os(Linux) || os(Android)
78
85
pthread_mutex_lock ( lock)
79
86
defer { pthread_mutex_unlock ( lock) }
87
+ #elseif os(FreeBSD)
88
+ pthread_mutex_lock ( lock)
89
+ defer { pthread_mutex_unlock ( lock) }
80
90
#elseif os(Windows)
81
91
AcquireSRWLockExclusive ( lock)
82
92
defer { ReleaseSRWLockExclusive ( lock) }
@@ -113,6 +123,9 @@ extension Lock {
113
123
#elseif os(Linux) || os(Android)
114
124
pthread_mutex_lock ( lock)
115
125
defer { pthread_mutex_unlock ( lock) }
126
+ #elseif os(FreeBSD)
127
+ pthread_mutex_lock ( lock)
128
+ defer { pthread_mutex_unlock ( lock) }
116
129
#elseif os(Windows)
117
130
AcquireSRWLockExclusive ( lock)
118
131
defer { ReleaseSRWLockExclusive ( lock) }
0 commit comments