KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I wonder, why MailboxProcessor 's default strategy of handling exceptions is just silently ignore them. For example: let counter = MailboxProcessor.Start(fun inbox -> let rec loop() = async { printfn "waiting for data..." let! data = inbox.Receive() failwith "fail" // simulate throwing of an exception printfn "Got: %d" data return! loop() } loop ()) () counter.Post(42) counter.Post(43) counter.Post(44) Async.Sleep 1000 |> Async.RunSynchronously and nothing happens. There is no fatal stop of the program execution, or message box with "An unhandled exception" arises. Nothing. This situation becomes worse if someone uses PostAndReply method: a guaranteed deadlock as the result. Any reasons for such behavior?
Tags (comma-separated)
Save Edits
Cancel