File tree 1 file changed +4
-4
lines changed
1 file changed +4
-4
lines changed Original file line number Diff line number Diff line change @@ -14,20 +14,20 @@ class QueueSpinLock final {
14
14
public:
15
15
explicit Guard (QueueSpinLock& host) : host(host) { host.Acquire (this ); }
16
16
~Guard () {
17
- if (is_owner) Release ();
17
+ if (is_owner. load () ) Release ();
18
18
}
19
19
20
20
void Release () {
21
21
host.Release (this );
22
- is_owner.store (false );
22
+ is_owner.store (false , std::memory_order_release );
23
23
}
24
24
25
- void SetOwner () { is_owner.store (true , std::memory_order_acquire ); }
25
+ void SetOwner () { is_owner.store (true , std::memory_order_release ); }
26
26
27
27
void SetNext (Guard* guard) { next.store (guard); }
28
28
29
29
bool IsOwner () const {
30
- return is_owner.load (std::memory_order_release );
30
+ return is_owner.load (std::memory_order_acquire );
31
31
}
32
32
33
33
bool HasNext () const { return next.load () != nullptr ; }
You can’t perform that action at this time.
0 commit comments