[GBBopen-developer] Agenda Shell test failed on LispWorks 5.1
Dan Corkill
corkill at gbbopen.org
Tue Apr 15 04:10:57 EDT 2008
>>> I'm new to GBBopen. On LispWorks 5.1 (amd64-linux), the Agenda Shell
>>> test cannot pass:
>>
>> Thanks for the error report. I suspect that multiprocessing has not
>> been started in your LispWorks session. I've committed a change to
>> GBBopen's Portable Threads interface that warns if multiprocessing is
>> not running and added more details to the recursive-lock-attempt error
>> message.
>
> You're right that I didn't start multiprocessing in my lispworks session.
The Portable Threads interface (which is used by the Agenda Shell) requires
that LispWorks's multiprocessing is running. The GBBopen documentation
should be clearer about this.
>> Please try rerunning the :agenda-shell-test using the latest SVN
>> checkout (first without starting multiprocessing, if that is indeed
>> the cause--just to see if the warning and better error messages are
>> helpful; then with multiprocessing running if it was not).
Thanks for running these tests:
> Without multiprocessing,
>
> This time I can see a warning:
>
> Warning: You must start multiprocessing on Lispworks by calling
> (MP:INITIALIZE-MULTIPROCESSING)
> for WITH-TIMEOUT and other thread operations to function properly.
>
> But the error still exist:
>
> Error: A recursive attempt was made by NIL to hold lock #<MP:LOCK
> "event-buffer" Unlocked 41507C9123> (held by NIL)
Yes, this behavior (issuing the warning) is what was expected. Threading
operations (including locks) will not work correctly until multiprocessing
is running. Since it is possible for someone to load :portable-threads and
then initialize LW's multiprocessing before using any of the threading
operations, we only issue a warning rather than an error at this point.
By the way, a similar situation exists for CMUCL if the idle-loop process
has not been started. A load-time warning is issued in this case as well.
It probably makes sense to have start-control-shell recheck if
multiprocessing is running (on LW & CMUCL) and generate an error at that
time if it is not. We will add this check.
> With multiprocessing, tests pass well:
Thanks again for running the tests (and welcome to GBBopen!).
-- Dan
--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
More information about the GBBopen-developer
mailing list