Loading "lparallel" hangs
Daniel Kochmański
daniel at turtleware.eu
Sun Sep 2 12:06:38 UTC 2018
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