Please consider the [following patch for ABCL against BORDEAUX-THREAD HEAD][1]. The patch provides implementation of both BT locking semantics (recursively head and not) by use of [java.util.concurrent.locks ReentrantLock][2] as well as a (hopefully) correct implementation of POSIX-style condition variable, and allows non-blocking lock acquisition.
[1]: http://slack.net/~evenson/abcl/hunchentoot/bordeaux-threads-abcl-20110215a.d...
[2]; http://download.oracle.com/javase/6/docs/api/java/util/concurrent/locks/Reen...