[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#43757: cuirass: Fail to fetch "guix" input.
From: |
Ludovic Courtès |
Subject: |
bug#43757: cuirass: Fail to fetch "guix" input. |
Date: |
Sat, 03 Oct 2020 14:00:42 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) |
Hi,
Mathieu Othacehe <othacehe@gnu.org> skribis:
>> ERROR: In procedure make-stack:
>> Attempt to suspend fiber within continuation barrier
>
> Turns out "par-map" call does not seem suspendable, even though I'm not
> sure why. Maybe Ludo can help here :) ?
‘par-map’ is implemented in terms of futures, and futures use their own
thread pool. What’s likely to block is ‘touch’: it essentially waits on
a condition variable, which Fibers cannot interrupt.
I’d say that mixing fibers and ‘par-map’ is a bad idea. :-)
If we need such a thing, I think we should implement it on top of
Fibers. Implementing futures on top of fibers + channels should be
easier than what (ice-9 futures) does.
> This is fixed with: 761443bca6178b4ac299a8bd368d1cac4abda5f8.
Why not just replace ‘par-map’ with ‘map’? That sounds easier and I
suspect it doesn’t change much performance-wise.
(There’s a 2nd use of ‘par-map’ in that file.)
Thanks,
Ludo’.