-
Notifications
You must be signed in to change notification settings - Fork 185
Closed
Description
ocaml/ocaml#11497 says:
First commit makes sure that signal handlers are run on the alternate signal stack. This is required since fiber stacks are generally too small to run signal handlers on.
Test case:
open Lwt.Infix
let main () =
for _ = 1 to 10000 do
match Lwt_unix.fork () with
| 0 -> Unix._exit 1
| _child -> ()
done
let main () =
Lwt_main.run begin
Lwt.pause () >>= fun () ->
main ();
Lwt.return_unit
end
let () =
Effect.Deep.match_with main ()
{ retc = ignore;
exnc = raise;
effc = (fun _ -> None);
};
Gc.full_major ()
Crashes with various errors, e.g.
$ ./_build/default/bin/main.exe
corrupted size vs. prev_size
fish: “./_build/default/bin/main.exe” terminated by signal SIGABRT (Abort)
(originally reported as ocaml-multicore/lwt_eio#15)
Metadata
Metadata
Assignees
Labels
No labels