c-cube on wip-effect-await
wip: effect handler for Lwt.awa… detail basic test and 2 more (compare)
raphael-proust on master
Init written byte to 0 for pipe… Merge pull request #941 from Mi… (compare)
Orbifx
Given Lwt's functionality, I don't think it's critical either.
slekaml
Oh sorry I mistook this chan for the chan of the people who took the ocaml mooc
Other hint : I have a periodic (debug) task which prints dots :
let rec loop () =
Lwt_io.printf "." ;%lwt
Lwt_unix.sleep 0.1 ;%lwt
loop ()
As the FLUSH blocks, this loop may block or not (same executable launched a couple of times : once it prints dots repeatedly, but FLUSH is blocked, once it does not print dots and FLUSH is also blocked).
Lwt_bytes.write
would have to hang, emptying the internal Lwt_io
channel buffer. I suggest to either narrow the case as much as you can, by deleting huge chunks of code from a second copy of your project, or to put lwt as a sibling project of yours into a dune workspace and instrument Lwt_io
with prints to get a better idea of what is going on
@aantron Thank you for your reply (I wasn't sure this deserved an issue :) )
I'll follow your advice (and also try some other hacks that came to my mind).
For the moment, the bug has disappeared (also I am pretty sure I have not recompiled, only changed the environment - IP, dual screen). So it seems non-deterministic.
master
: ocsigen/lwt#704. it affected Lwt programs that called fork
, on glibc > 2.24 (not sure exactly which version of glibc introduced the problem). if you used opam pin --dev-repo, you are likely not using exactly lwt 4.3.0. to be sure about which commit you are using, do a normal git clone
, check git log
, and then do opam pin add lwt .