[armedbear-ticket] [armedbear] #135: ql:FEB2011:bordeaux-threads BORDEAUX-THREADS does not work

armedbear armedbear-devel at common-lisp.net
Tue Mar 1 09:39:47 UTC 2011


#135: ql:FEB2011:bordeaux-threads BORDEAUX-THREADS does not work
------------------------+---------------------------------------------------
  Reporter:  mevenson   |       Owner:  mevenson                          
      Type:  defect     |      Status:  accepted                          
  Priority:  major      |   Milestone:  0.25                              
 Component:  libraries  |     Version:  0.24                              
Resolution:             |    Keywords:  bordeaux-threads quicklisp threads
------------------------+---------------------------------------------------
Changes (by mevenson):

  * status:  new => accepted


Comment:

 A quick description of what I think is going on here:

 http://slack.net/~evenson/abcl/bordeaux-threads-abcl-20110227a.diff
 contains the current version of my against the b-t git trunk.

 The g-t trunk:

   * [http://common-lisp.net/gitweb?p=projects/bordeaux-threads/bordeaux-
 threads.git;a=commitdiff;h=314e67cbe309c3b1b2e9a95f47c7c0a7fb8a52b7 fix
 the move of threads from EXT to THREADS]

   * [http://common-lisp.net/gitweb?p=projects/bordeaux-threads/bordeaux-
 threads.git;a=commitdiff;h=ee279a45320762840efc3b3efc1b835e50c5f6fd gives
 THREAD-YIELD a reasonable value]

 But this is not enough, as at some time in the past (???) we removed
 !ThreadLock.java which contained support for THREAD-LOCK and THREAD-
 UNLOCK, although we (BUG!) still autoload these symbols.

 My patch then:

    * removes the use of the built-in (and from what I can make of it
 really rather deprecated) condition variables implementation, substituting
 one based on the built-in JVM synchronization primitives

    * provides a new implementation of the lock based on the
 [http://download.oracle.com/javase/6/docs/api/java/util/concurrent/locks/ReentrantLock.html
 java.util.concurrent.locks.ReentrantLock].  This structure is general
 enough to implement both the recursive and non-recursive locks abstracted
 by the b-t interface. The b-t maintainer (Stellian) has critiqued the lack
 of proper guard against using these two types, which I have agreed need to
 be addressed in the code with more explicit checks.

 With these patches, b-t passes all but one of its built-in tests.

 There are style complaints on compilation that seem to indicate that the
 test suite is not being properly initialized.

-- 
Ticket URL: <http://trac.common-lisp.net/armedbear/ticket/135#comment:1>
armedbear <http://common-lisp.net/project/armedbear>
armedbear


More information about the armedbear-ticket mailing list