-
Notifications
You must be signed in to change notification settings - Fork 412
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Watch mode crashes on macos on main
branch
#9004
Comments
cc @kevinji |
Apologies for the bug, I just submitted #9009 as a fix. Let me know if that fixes the issue for you; I was able to reproduce the issue on main and saw it go away with the changes in this PR. |
Thanks for the fast reaction, your fix does make the issue disappear :-) |
voodoos
pushed a commit
to voodoos/dune
that referenced
this issue
Nov 21, 2023
Previously, the code waiting on `dq->dq_finished` would get notified in `dune_fsevents_dispatch_queue_wait_until_stopped` that the dispatch queue had completed running. This would lead to the dispatch queue being marked as `Stopped` on the OCaml side, even though the dispatch queue could be passed into `Fsevents.start` again. This change now tracks the number of fsevents streams in a `fsevents_streams` counter so that `Dispatch_queue.wait_until_stopped` will only return when an exception is raised or if all streams have been stopped, restoring the original behavior in the code that used a runloop. Fixes ocaml#9004. Fixes ocaml#8910. Signed-off-by: Kevin Ji <1146876+kevinji@users.noreply.github.com>
emillon
pushed a commit
that referenced
this issue
Nov 28, 2023
Previously, the code waiting on `dq->dq_finished` would get notified in `dune_fsevents_dispatch_queue_wait_until_stopped` that the dispatch queue had completed running. This would lead to the dispatch queue being marked as `Stopped` on the OCaml side, even though the dispatch queue could be passed into `Fsevents.start` again. This change now tracks the number of fsevents streams in a `fsevents_streams` counter so that `Dispatch_queue.wait_until_stopped` will only return when an exception is raised or if all streams have been stopped, restoring the original behavior in the code that used a runloop. Fixes #9004. Fixes #8910. Signed-off-by: Kevin Ji <1146876+kevinji@users.noreply.github.com>
voodoos
pushed a commit
to voodoos/dune
that referenced
this issue
Nov 28, 2023
Previously, the code waiting on `dq->dq_finished` would get notified in `dune_fsevents_dispatch_queue_wait_until_stopped` that the dispatch queue had completed running. This would lead to the dispatch queue being marked as `Stopped` on the OCaml side, even though the dispatch queue could be passed into `Fsevents.start` again. This change now tracks the number of fsevents streams in a `fsevents_streams` counter so that `Dispatch_queue.wait_until_stopped` will only return when an exception is raised or if all streams have been stopped, restoring the original behavior in the code that used a runloop. Fixes ocaml#9004. Fixes ocaml#8910. Signed-off-by: Kevin Ji <1146876+kevinji@users.noreply.github.com>
voodoos
pushed a commit
to voodoos/dune
that referenced
this issue
Jan 19, 2024
Previously, the code waiting on `dq->dq_finished` would get notified in `dune_fsevents_dispatch_queue_wait_until_stopped` that the dispatch queue had completed running. This would lead to the dispatch queue being marked as `Stopped` on the OCaml side, even though the dispatch queue could be passed into `Fsevents.start` again. This change now tracks the number of fsevents streams in a `fsevents_streams` counter so that `Dispatch_queue.wait_until_stopped` will only return when an exception is raised or if all streams have been stopped, restoring the original behavior in the code that used a runloop. Fixes ocaml#9004. Fixes ocaml#8910. Signed-off-by: Kevin Ji <1146876+kevinji@users.noreply.github.com>
voodoos
pushed a commit
to voodoos/dune
that referenced
this issue
Apr 5, 2024
Previously, the code waiting on `dq->dq_finished` would get notified in `dune_fsevents_dispatch_queue_wait_until_stopped` that the dispatch queue had completed running. This would lead to the dispatch queue being marked as `Stopped` on the OCaml side, even though the dispatch queue could be passed into `Fsevents.start` again. This change now tracks the number of fsevents streams in a `fsevents_streams` counter so that `Dispatch_queue.wait_until_stopped` will only return when an exception is raised or if all streams have been stopped, restoring the original behavior in the code that used a runloop. Fixes ocaml#9004. Fixes ocaml#8910. Signed-off-by: Kevin Ji <1146876+kevinji@users.noreply.github.com>
voodoos
pushed a commit
to voodoos/dune
that referenced
this issue
Apr 15, 2024
Previously, the code waiting on `dq->dq_finished` would get notified in `dune_fsevents_dispatch_queue_wait_until_stopped` that the dispatch queue had completed running. This would lead to the dispatch queue being marked as `Stopped` on the OCaml side, even though the dispatch queue could be passed into `Fsevents.start` again. This change now tracks the number of fsevents streams in a `fsevents_streams` counter so that `Dispatch_queue.wait_until_stopped` will only return when an exception is raised or if all streams have been stopped, restoring the original behavior in the code that used a runloop. Fixes ocaml#9004. Fixes ocaml#8910. Signed-off-by: Kevin Ji <1146876+kevinji@users.noreply.github.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
On my machine, watch mode is broken on the main branch.
@emillon mentioned it might be linked to #8304
Specifications
dune
: 3.11.0-221-g5b6c8f4 (main)ocaml
: 4.14.1 (and 5.1.0)Reproduction
make dev
./dune.exe build @install -w
The text was updated successfully, but these errors were encountered: