From: Xavier Leroy <Xavier.Leroy@inria.fr>
To: caml-list@inria.fr
Subject: Re: [Caml-list] Threads and "transaction isolation" in OCaml
Date: Mon, 19 Aug 2013 09:33:00 +0200 [thread overview]
Message-ID: <5211CA2C.4010202@inria.fr> (raw)
In-Reply-To: <CAP_800ouyegVh=srSK5rRXAK56Akk6DBkH5tzSnTQA7jPZHp8A@mail.gmail.com>
On 2013-08-16 18:07, Markus Mottl wrote:
> I just wondered how much we can rely on current OCaml-semantics where
> context-switches are impossible as long as there are no allocations.
> [...]
> But, surprisingly to me, I did manage to get a failure with byte code
> + POSIX threads when running this example on Linux (Centos 6.4) via
> VMware Fusion (Mac OS X).
Bytecode and native code poll for asynchronous events (context
switches, pending signals, etc) at different program points:
- Bytecode:
. at every function call
. at the beginning of every iteration of a while or for loop
. at the end of "b" in "try b with ...".
- Native:
. at every allocation in the minor heap.
Your example has a function call in the "transaction", hence the
behavior you observe.
> Anyway, is it considered reasonably future-safe to write code of that
> sort? I'd rather not have new compiler optimizations, etc., interfere
> with these assumptions in the near future.
There is no short-term plan to change this behavior, but no guarantee
that it will be here forever. Caveat emptor.
- Xavier Leroy
prev parent reply other threads:[~2013-08-19 7:33 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-15 21:57 Markus Mottl
2013-08-16 1:28 ` John F Carr
2013-08-16 2:55 ` Markus Mottl
2013-08-16 8:46 ` Török Edwin
2013-08-16 16:07 ` Markus Mottl
2013-08-17 0:06 ` Yaron Minsky
2013-08-19 6:10 ` Mark Shinwell
2013-08-19 14:18 ` Markus Mottl
2013-08-19 7:33 ` Xavier Leroy [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5211CA2C.4010202@inria.fr \
--to=xavier.leroy@inria.fr \
--cc=caml-list@inria.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox