MailboxProcessor i wyjątki

Zastanawiam się dlaczegoMailboxProcessordomyślną strategią obsługi wyjątków jest właśniepo cichu ignorować im. Na przykład:

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

i nic się nie dzieje. Nie ma krytycznego zatrzymania wykonywania programu lub pojawia się okno komunikatu z „Nieobsługiwanym wyjątkiem”. Nic.

Sytuacja pogarsza się, jeśli ktoś używaPostAndReply metoda: gwarantowany zakleszczenie jako wynik.

Jakieś powody takiego zachowania?

questionAnswers(2)

yourAnswerToTheQuestion