LispWorks now has "cooperative" stream locking. "Cooperative" here means that the lock is not explicitly claimed by the stream I/O functions, so the locking takes effect only when your code uses the locking interface explicitly ("cooperates").
Stream locking makes it possible to write atomically with respect to code that runs in another thread, providing that the code running in the other thread also uses the locks. The same functionality can be achieved by using a
around I/O calls, but stream locking saves you from keeping a
object for each stream.
Stream locking is an experimental feature and is not documented in the manuals supplied. For more information please contact Lisp Support.