summaryrefslogtreecommitdiff
path: root/indra/llcommon/llcoros.cpp
diff options
context:
space:
mode:
authorNat Goodspeed <nat@lindenlab.com>2019-12-09 14:33:56 -0500
committerNat Goodspeed <nat@lindenlab.com>2020-03-25 19:24:25 -0400
commit3cd2beb97ef0d368d47b0b7efd242b3c709d01af (patch)
treea7188152443e365a2fb73f33ecac53409a8a630f /indra/llcommon/llcoros.cpp
parent80f913fadb1a03b50fd449c3416b331eb2512bea (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