sharplispers / clx

a fork of crhodes' fork of danb's fork of the CLX library, an X11 client for Common Lisp
Other
114 stars 46 forks source link

Fix conditional store #169

Closed dkochmanski closed 4 years ago

dkochmanski commented 4 years ago

Wrapping a body in without-interrupts is useless when multiprocessing. Casual use of CLX with implementations other than SBCL (which used a lock) proved to exercise a race condition where the operation threaded-nconc looped over the buffer forever, because circular list was created.

Also we use CAS operation on implementations which implement it.