Re: [racket-dev] BUG: busy-waiting

2014-09-04 Thread Matthew Flatt
Thanks! I've pushed a repair. At Thu, 4 Sep 2014 01:56:07 -0400, Marc Burns wrote: > Yes. I forgot that, in the case I was debugging, `unzip` was wrapping > its input pipe with `make-limited-input-port`. The user port created by > `make-limited-input-port` is causing the loop. Here's an example: >

Re: [racket-dev] BUG: busy-waiting

2014-09-04 Thread Marc Burns
Confirm, I'm having a very similar issue. I haven't run gdb yet but I would bet several horses on my code running through scheme_block_until near the busy wait. I will try to get a minimal example together after I get out of meetings for the day. Cheers > On Sep 3, 2014, at 16:52, Jan Dvořák

Re: [racket-dev] BUG: busy-waiting

2014-09-03 Thread Marc Burns
Yes. I forgot that, in the case I was debugging, `unzip` was wrapping its input pipe with `make-limited-input-port`. The user port created by `make-limited-input-port` is causing the loop. Here's an example: #lang racket/base (require racket/port) (define-values (in out) (make-pipe)) (define p (m

Re: [racket-dev] BUG: busy-waiting

2014-09-03 Thread Matthew Flatt
Can you provide an example? Here's what I tried, but it blocks without busy-waiting: #lang racket (require file/gunzip file/gzip) (define dest (open-output-bytes)) (deflate (open-input-bytes #"hello") dest) (define bstr (get-output-bytes dest)) (define-

Re: [racket-dev] BUG: busy-waiting

2014-09-03 Thread Marc Burns
The offending function in my case seems to be peek-bytes-avail! The busy wait is entered on line 284 of collects/file/gunzip.rkt. Here's what happens when I add some tracing to gunzip.rkt and then try to inflate a Racket pipe: ... + (displayln "before read-bytes!") (read-byt

[racket-dev] BUG: busy-waiting

2014-09-03 Thread Jan Dvořák
Hello, I am hitting a rather uncomfortable bug that causes runtime to start internal busy-waiting at around: #0 scheme_block_until(_f=, fdf=) at ../src/thread.c:5199 #1 do_sync (name="sync", with_break=0, with_timeout=0) at ../src/thread.c:7109 It goes through ../src/thread.c:5190,