I'm kind of stuck in my current development. Does anyone know of a library of atomic operation primitives for Common Lisp?
My boss asked me to convert an old tool, based on CL, to be multicore, but I can't seem to find any good mention of synchronization primitives in any official sources
>>1
Each implementation usually has their own atomic operation implementations, as well as threading/locks/sync stuff. There's a few portable threading libraries which abstract over implementation specific stuff. One example of such a library is bordeaux-threads.
portable-threads is another such library.
It should also be noted that in some cases, some implementations (like SBCL) may offer specialized optimizations that you may want to use (for example: atomic incf or more control over dynamic-extent), so if you don't mind adding some reader conditionals, you may be able to achieve better performance in those implementations.