anchor.diff:  ;;; Resource contention: locks and recursive locks
   
   (defun make-lock (&optional name)
  -  (mt:make-mutex :name name))
  +  (mt:make-mutex :name (or name "Anonymous lock")))
   
   (defun acquire-lock (lock &optional (wait-p t))
  -  (declare (ignore wait-p))
  -  (mt:mutex-lock lock))
  +  (mt:mutex-lock lock :timeout (if wait-p nil 0)))
   
   (defun release-lock (lock)
     (mt:mutex-unlock lock))
  
positive.code: 
  (in-package #:bordeaux-threads)
  
  ;;; Thread Creation
  
  (defun %make-thread (function name)
    (mt:make-thread function :name name))
  
  (defun current-thread ()
    (mt:current-thread))
  
negative.code:   `(mt:with-mutex-lock (,place) ,@body))
  
  (defun make-recursive-lock (&optional name)
    (mt:make-mutex :name (or name "Anonymous recursive lock")
                   :recursive-p t))
  
  (defmacro with-recursive-lock-held ((place) &body body)
    `(mt:with-mutex-lock (,place) ,@body))
  