diff options
author | Nat Goodspeed <nat@lindenlab.com> | 2019-12-09 14:33:56 -0500 |
---|---|---|
committer | Nat Goodspeed <nat@lindenlab.com> | 2020-03-25 19:24:25 -0400 |
commit | 3cd2beb97ef0d368d47b0b7efd242b3c709d01af (patch) | |
tree | a7188152443e365a2fb73f33ecac53409a8a630f /indra/llcommon/llcoros.cpp | |
parent | 80f913fadb1a03b50fd449c3416b331eb2512bea (diff) |
DRTVWR-476: Make Sync::bump() atomic, add set() method.
Using Sync with multiple threads is trickier than with coroutines. In
particular, Sync::bump() was racy (get() and set() as two different
operations), and threads were proceeding when they should have waited.
Fortunately LLCond, on which Sync is based, already supports atomic update
operations. Use that for bump().
But to nail things down even more specifically, add set(n) to complement
yield_until(n). Using those methods, there should be no ambiguity about which
call in one thread synchronizes with which call in the other thread.
Diffstat (limited to 'indra/llcommon/llcoros.cpp')
0 files changed, 0 insertions, 0 deletions