Re: Loading "lparallel" hangs

Robert Larice <[email protected]>
Newsgroups gmane.lisp.ecl.general
Message-ID <[email protected]>
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 <[email protected]> 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 <[email protected]> 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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.