In short, with monadic threads, you can safely invoke non-concurrent code from concurrent code. (The inverse can be dangerous - but you usually don't do this anyway since you will end up optaining an 'a Lwt.t).
In my experience that rarely works, in the sense of scaling to code of significant size.
Such code must be written with the concurrency mechanism at the forefront from the start. I don't agree that event based mechanisms prevent syncronisation bugs or consistency bugs as you call them, but the issue has already been taken up by others in this thread, so I shall keep this message short. Martin _______________________________________________ Caml-list mailing list. Subscription management: http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list Archives: http://caml.inria.fr Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs