Hello,
The attached patches do not add or fix anything, just clean up the lispworks implementation a bit. ;-)
1) bordeaux-threads-0.8.1+lw6x.patch
This patch updates lispworks implementation reflecting all recent changes in LispWorks 6.x MP API.
Some MP calls are still available in 6.x but considered deprecated and removed from documentation.
1.1) current-thread() changes
It is better to use mp:get-current-process() that was introduced in LispWorks 5.1 instead of mp:*current-process* that can be bound to another process.
1.2) threadp() changes
MP provides its own predicates for processes.
1.3) acquire-recursive-lock() and release-recursive-lock() changes
I am getting warnings when compiling bordeaux-threads, so why not 'declaim' these calls 'inline' instead (fixed in the patch)
;;;*** Warning in BORDEAUX-THREADS:ACQUIRE-RECURSIVE-LOCK: Inline expansion for BORDEAUX-THREADS:ACQUIRE-LOCK not found ;;;*** Warning in BORDEAUX-THREADS:ACQUIRE-RECURSIVE-LOCK: Inline expansion for BORDEAUX-THREADS:ACQUIRE-LOCK not found ; BORDEAUX-THREADS:ACQUIRE-RECURSIVE-LOCK ;;;*** Warning in BORDEAUX-THREADS:RELEASE-RECURSIVE-LOCK: Inline expansion for BORDEAUX-THREADS:RELEASE-LOCK not found ;;;*** Warning in BORDEAUX-THREADS:RELEASE-RECURSIVE-LOCK: Inline expansion for BORDEAUX-THREADS:RELEASE-LOCK not found
1.4) join-thread() changes
LispWorks 6.0 introduces its own mp:process-join() function.
2) bordeaux-threads-0.8.1+eos.patch
This patch replaces FiveAM with Eos. Eos has no dependencies and backward compatible with FIveAM API.
I couldn't manage to load FiveAM in LW because of arnesi loading errors. All tests work fine with Eos (tested with recent Clozure CL, SBCL and LW 6.1).
Thank you for your time. ;-)