summaryrefslogtreecommitdiffstats
path: root/netwerk/base/nsIncrementalStreamLoader.h
diff options
context:
space:
mode:
authorMoonchild <moonchild@palemoon.org>2020-10-23 08:10:01 +0000
committerMoonchild <moonchild@palemoon.org>2020-10-24 10:38:50 +0000
commitf07d60c09fc0fea2bc614146d13346bc7473b87e (patch)
treed823fc78c97a0f611ee7ad492c58d84858004461 /netwerk/base/nsIncrementalStreamLoader.h
parentd7a05ea9e50f7484d09caf93c554b4be0c9e887d (diff)
downloadUXP-f07d60c09fc0fea2bc614146d13346bc7473b87e.tar
UXP-f07d60c09fc0fea2bc614146d13346bc7473b87e.tar.gz
UXP-f07d60c09fc0fea2bc614146d13346bc7473b87e.tar.lz
UXP-f07d60c09fc0fea2bc614146d13346bc7473b87e.tar.xz
UXP-f07d60c09fc0fea2bc614146d13346bc7473b87e.zip
[netwerk] Make nsIncrementalStreamLoader's GetNumBytesRead threadsafe.
This prevents a potential race and simplifies the code a bit by keeping the bytes read separate instead of using mData, which is modified from another thread from OnDataAvailable. Relaxed atomics are fine for these, since they don't guard any memory.
Diffstat (limited to 'netwerk/base/nsIncrementalStreamLoader.h')
-rw-r--r--netwerk/base/nsIncrementalStreamLoader.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/netwerk/base/nsIncrementalStreamLoader.h b/netwerk/base/nsIncrementalStreamLoader.h
index f04d4a958..0e2b532e6 100644
--- a/netwerk/base/nsIncrementalStreamLoader.h
+++ b/netwerk/base/nsIncrementalStreamLoader.h
@@ -47,8 +47,9 @@ protected:
// available.
mozilla::Vector<uint8_t, 0> mData;
- // Number of consumed bytes from the mData.
- size_t mBytesConsumed;
+ // Number of bytes read, which may differ from the number of bytes in mData,
+ // since we incrementally remove from there.
+ mozilla::Atomic<uint32_t, mozilla::Relaxed> mBytesRead;
};
#endif // nsIncrementalStreamLoader_h__