diff options
author | Michael Cahill <michael.cahill@mongodb.com> | 2017-06-06 17:07:21 +1000 |
---|---|---|
committer | Alex Gorrod <alexander.gorrod@mongodb.com> | 2017-06-07 07:36:50 +1000 |
commit | 6da948fe3d4dd7262cbd0528d66867f276ce811d (patch) | |
tree | 4cf143145412fd515dff5a9a1e714936cdd03db3 /test | |
parent | acd71ffa0d88a5e9fabac8ce27e940a550bb6418 (diff) | |
download | mongodb-3.2.14.tar.gz |
WT-3356 Use atomic reads of rwlocks. (#3454)mongodb-3.2.14
* WT-3356 Use atomic reads of rwlocks.
Previously we had some conditions that checked several fields within a rwlock by indirecting to the live structure. Switch to always doing a read of the full 64-bit value, then using local reads from the copy.
Otherwise, we're relying on the compiler and the memory model to order the structure accesses in "code execution order". That could explain assertion failures and/or incorrect behavior with the new rwlock implementation.
* Change all waits to 10ms.
Previously when stalling waiting to get into the lock we would wait for 1ms, but once queued we waited forever. The former is probably too aggressive (burns too much CPU when we should be able to wait for a notification), and the latter is dangerous if a notification is ever lost (a thread with a ticket may never wake up).
Diffstat (limited to 'test')
0 files changed, 0 insertions, 0 deletions