> From: Yilong Li [mailto:[email protected]]
> Subject: Re: RV-Predict bugs
> The following is a valid execution trace consists of 5 events:
> T1 T2
> 1 READ null
> 2 WRITE s
> 3 READ s
> 4 READ ???
> 5 READ s
> where s is the result of sm.getString("sc.200").
> The question is what value T2 can read and then return in event 4.
It's not clear what the READ ??? is intended to represent.
> The question boils down to: does the write in event 2 prevent event 4 from
> reading the initial null value of st_200?
It doesn't, but that's not the real problem. Let's expand the example a bit:
T1 T2
1 READ null from st_200
2a allocate obj
2b WRITE obj->field
2c WRITE obj into st_200
3 READ obj from st_200
4 READ obj->field
Since there is no actual ordering of steps 2b (object initialization) and 2c
(object publication) in T1, T2 can observe them in the reverse order and pick
up an unitialized value for field.
- Chuck
THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY
MATERIAL and is thus for use only by the intended recipient. If you received
this in error, please contact the sender and delete the e-mail and its
attachments from all computers.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]