RE: JavaMemoryModel: A major problem with CnC

From: David Holmes (
Date: Wed Jul 30 2003 - 21:16:51 EDT

Bill Pugh wrote:
> Also, the type of causality we are arguing about is similar to the
> notion of causality in a world with time machines. I've told people
> that our memory model is:
> * You can't kill your father before he met your mother (consistency)
> * You can't give yourself the time machine blueprints, unless you
> would have obtained them anyway (causality)

Then we are indeed in trouble. Time machines violate the most basic
intuitive, lay-person concept of causality. I agree with sarita on
this. When considering cause and affect one has to start with the
first action to occur.

In the given example, in my view the setting of A to 1 because it
would be set to 1 anyway, is incorrect. I can see that if all
executions of a program will set A to 1 then it may be possible to do
a prescient store of A=1 *BUT* that should only be allowed if
execution of the program up to the point where A would actually become
1 is *NOT* affected by the fact that A has presciently been set to 1.
In this example the program is affected by the prescient store (the
value of B changes) and so it should not be allowed.

So Bill you can give youself the time-machine blueprints, if you would
have ended up with them anyway, but *ONLY* if you don't change your
behaviour due to having the blueprints up to the point where you would
have had them anyway. Otherwise I think your notion of 'causality'
threatens your notion of 'consistency'.

David Holmes

JavaMemoryModel mailing list -

This archive was generated by hypermail 2b29 : Thu Oct 13 2005 - 07:00:49 EDT