Loading "lparallel" hangs
Robert Larice
Robert.Larice at t-online.de
Sun Sep 2 16:11:09 UTC 2018
Thank You Daniel,
I have exactly the same
(ext:lisp-implementation-vcs-id)
output.
Can you send me the stdout of your (uncached/fresh)
./configure
?
I would try to compare it with mine
watching out for some difference.
I did install these debian packages
libgc-dev libffi-dev libatomic-ops-dev
pkg-config libgmp-dev libx11-dev
qtcreator qtbase5-dev qt5-default cl-quicklisp
in addition to whatever I had before on my machine.
Further, quicklisp gave me these versions
in $HOME/quicklisp/dists/quicklisp/software
alexandria-20170830-git
bordeaux-threads-v0.8.6
lparallel-20160825-git
Is there some difference to yours ?
Best Regards,
Robert
Daniel Kochmański <daniel at turtleware.eu> writes:
> Hey Robert,
>
> I can't reproduce the problem with the newest ECL code (from git
> develop branch) on my host. lparallel works fine and this snippet does
> terminate after timeout.
>
> CL-USER> (ext:lisp-implementation-vcs-id)
> "ba6e6ddde780c097918673f16c7aba05f354d022"
>
> Best regards,
> Daniel
>
> W dniu nie, 02.09.2018 o godzinie 12∶27 +0200, użytkownik Robert Larice
> napisał:
>> I tried to understand where the issue is located.
>>
>> In :lparallel file lparallel-20160825-git/src/thread-util.lisp
>> there is a stanza which tries to check for the implementation
>> of the :timeout capability
>>
>> > ;;; Check for timeout parameter in bordeaux-threads:condition-wait.
>> > (eval-when (:compile-toplevel :execute)
>> > ;; use special to defeat compiler analysis
>> > (defparameter *condition-wait* #'bordeaux-threads:condition-wait)
>> >
>> > (flet ((has-condition-wait-timeout-p ()
>> > ...
>>
>> I tried to minimise this to a small standalone piece
>> which can be used to examine the issue:
>>
>> (ql:quickload :bordeaux-threads)
>>
>> (let ((lock (bordeaux-threads:make-lock))
>> (cvar (bordeaux-threads:make-condition-variable)))
>> (bordeaux-threads:with-lock-held (lock)
>> (bordeaux-threads:condition-wait cvar lock :timeout 0.001)))
>>
>> I think the :timeout doesn't seem to work properly and thus the
>> condition-wait waits forever.
>>
>> Can you help me to understand this better and to work around it ?
>>
>> Regards
>> Robert Larice
>>
>>
>> Robert Larice <Robert.Larice at t-online.de> writes:
>>
>> > Hello,
>> >
>> > can you provide me some hints for the following problem ?
>> >
>> > I've compiled ecl from git on a debian stretch machine.
>> > Then I've tried to compile the "qt" example,
>> > which did hang when loading "lparallel"
>> > So I started "ecl" from a shell,
>> > and did execute
>> > (ql:quickload :lparallel)
>> > which presents me:
>> > > To load "lparallel":
>> > > Load 1 ASDF system:
>> > > lparallel
>> > > ; Loading "lparallel"
>> > then the process fell silent.
>> > "top" doesn't show "ecl" to consume cpu cycles.
>> > Its waiting for something and doesn't proceed.
>> >
>> > Regards,
>> > Robert Larice
More information about the ecl-devel
mailing list