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