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