Thread safety of AAs
Alex Rønne Petersen
xtzgzorex at gmail.com
Tue May 15 20:06:54 PDT 2012
On 16-05-2012 05:03, H. S. Teoh wrote:
> On Wed, May 16, 2012 at 04:35:17AM +0200, Alex Rønne Petersen wrote:
>> Hi,
>>
>> Suppose that I have an AA that I'm doing lookups on from one thread,
>> and writing to in another. Is this safe at all? Naturally, I'm
>> willing to accept the data races involved, but the question is
>> whether the concurrent lookup + mutation is guaranteed to be safe.
> [...]
>
> Safe as in, no memory corruption? Or safe as in, the data will be
> consistent (barring any data races)?
As in no memory corruption.
>
> Memory safety I'm not sure, I _think_ it might be safe, but I have my
> doubts; data consistency, likely not, because you could potentially be
> reading partially-copied data (say the mutator was assigning new data to
> an existing key and the reader is reading that same data
> simultaneously; you may be seeing a partial copy of the new data
> intermixed with the old data).
Assuming the AA implementation only does aligned reads/writes, there
should be no problem with word tearing on any modern architecture. But I
don't know if it does that...
>
>
> T
>
--
- Alex
More information about the Digitalmars-d-learn
mailing list