Opened 7 years ago

Closed 6 years ago

#135 closed defect (fixed)

ql:FEB2011:bordeaux-threads BORDEAUX-THREADS does not work

Reported by: mevenson Owned by: mevenson
Priority: major Milestone: 0.26
Component: libraries Version: 0.24
Keywords: bordeaux-threads quicklisp threads Cc:
Parent Tickets:

Description

bordeaux-threads fails with ABCL due to a number of reasons for which I am in progress of working through patches. This issue will track the status of these patches against the progress of those patches against both BORDEAUX-THREADS in git and the version distributed with QuickLisp (the version of FEB2011 as of this writing).

Subtickets

Change History (12)

comment:1 follow-ups: Changed 7 years ago by mevenson

  • Status changed from new to accepted

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:

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 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.

comment:2 in reply to: ↑ 1 ; follow-up: Changed 7 years ago by mevenson

Replying to mevenson:

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.

Erik found the removal at r12509 which--when examined--shows that these symbols have essentially had a null implementation since then, meaning that b-t has been badly borked with ABCL since July 2009.

comment:3 in reply to: ↑ 2 Changed 7 years ago by mevenson

Replying to mevenson:

Erik found the removal at r12509 which--when examined--shows that these symbols have essentially had a null implementation since then, meaning that b-t has been badly borked with ABCL since July 2009.

err, that would be r12059.

comment:4 in reply to: ↑ 1 Changed 7 years ago by mevenson

Replying to mevenson:

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.

r13229 removed these symbols.

comment:5 Changed 7 years ago by mevenson

  • Resolution set to fixed
  • Status changed from accepted to closed

I seem to have now successfully brought my patches forward:

Use bordeaux-threads-abcl-20110301a.diff to patch BORDEAUX-THREADS git head.

Use quicklisp-bordeaux-threads-abcl-20110301a.diff to patch BORDEAUX-THREADS 0.8.0 as shipped with QuickLisp? FEB2011.

comment:6 Changed 7 years ago by mevenson

  • Resolution fixed deleted
  • Status changed from closed to reopened

comment:7 Changed 7 years ago by mevenson

After further critique by Martin Simmons of the POSIX condition variables implementation, I have a new bordeaux-threads-abcl-20110318a.diff patch against the BORDEAUX-THREADS git head.

And we'll leave this ticket open until we get an acceptable patch committed to that repository.

comment:8 follow-up: Changed 6 years ago by mevenson

The necessary patches have been committed to the BORDEAUX-THREADS repository, but hasn't made it to Quicklisp yet.

comment:9 in reply to: ↑ 8 Changed 6 years ago by mevenson

Replying to mevenson:

The necessary patches have been committed to the BORDEAUX-THREADS repository, but hasn't made it to Quicklisp yet.

Patch against the April 2011 Quicklisp installation is now available
http://slack.net/~evenson/abcl/hunchentoot/quicklisp-bordeaux-threads-abcl-20110427a.diff

comment:10 Changed 6 years ago by mevenson

  • Milestone changed from 0.25 to 0.26

comment:11 Changed 6 years ago by mevenson

May 2011 Quicklisp still hasn't updated BORDEAUX-THREADS, so the patch is still necessary.

comment:12 Changed 6 years ago by mevenson

  • Resolution set to fixed
  • Status changed from reopened to closed

BORDEAUX-THREADS-0.8.1 has been released. To be packaged in Quicklisp finally!

Note: See TracTickets for help on using tickets.