+(defmacro with-process-lock ((lock desc) &body body)
+ #+scl `(thread:with-lock-held (,lock ,desc) ,@body)
+ #+(or allegro lispworks)
+ (declare (ignore desc))
+ #+(or allegro lispworks)
+ (let ((l (gensym)))
+ `(let ((,l ,lock))
+ #+allegro (mp:with-process-lock (,l) ,@body)
+ #+lispworks (mp:with-lock (,l) ,@body)))
+ #-(or scl allegro lispworks) (declare (ignore lock desc))
+ #-(or scl allegro lispworks) `(progn ,@body))