Index: webrtc/pc/channel_unittest.cc |
diff --git a/webrtc/pc/channel_unittest.cc b/webrtc/pc/channel_unittest.cc |
index ad5fbaf1847e11997359b66b6846f8f4706ce43c..7dfafcef6c4cbb1abdff72d8ca7d64aba7b503e5 100644 |
--- a/webrtc/pc/channel_unittest.cc |
+++ b/webrtc/pc/channel_unittest.cc |
@@ -29,6 +29,8 @@ |
#include "webrtc/p2p/base/faketransportcontroller.h" |
#include "webrtc/pc/channel.h" |
+#include <atomic> |
+ |
#define MAYBE_SKIP_TEST(feature) \ |
if (!(rtc::SSLStreamAdapter::feature())) { \ |
LOG(LS_INFO) << "Feature disabled... skipping"; \ |
@@ -408,31 +410,29 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> { |
class CallThread : public rtc::SignalThread { |
public: |
typedef bool (ChannelTest<T>::*Method)(); |
- CallThread(ChannelTest<T>* obj, Method method, bool* result) |
+ CallThread(ChannelTest<T>* obj, Method method, std::atomic<bool>* result) |
: obj_(obj), |
method_(method), |
result_(result) { |
*result = false; |
} |
virtual void DoWork() { |
- bool result = (*obj_.*method_)(); |
- if (result_) { |
- *result_ = result; |
- } |
+ *result_ = (*obj_.*method_)(); |
ossu
2016/03/01 15:00:38
Since the pointer is always written to in the cons
Taylor Brandstetter
2016/03/01 20:03:42
I think the purpose of the check was so that you c
|
} |
private: |
ChannelTest<T>* obj_; |
Method method_; |
- bool* result_; |
+ std::atomic<bool>* result_; |
}; |
- void CallOnThread(typename CallThread::Method method, bool* result) { |
+ void CallOnThread(typename CallThread::Method method, |
+ std::atomic<bool>* result) { |
CallThread* thread = new CallThread(this, method, result); |
thread->Start(); |
thread->Release(); |
} |
void CallOnThreadAndWaitForDone(typename CallThread::Method method, |
- bool* result) { |
+ std::atomic<bool>* result) { |
CallThread* thread = new CallThread(this, method, result); |
thread->Start(); |
thread->Destroy(true); |
@@ -1326,7 +1326,7 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> { |
// Test that we properly send RTP without SRTP from a thread. |
void SendRtpToRtpOnThread() { |
- bool sent_rtp1, sent_rtp2, sent_rtcp1, sent_rtcp2; |
+ std::atomic<bool> sent_rtp1, sent_rtp2, sent_rtcp1, sent_rtcp2; |
CreateChannels(RTCP, RTCP); |
EXPECT_TRUE(SendInitiate()); |
EXPECT_TRUE(SendAccept()); |
@@ -1350,7 +1350,7 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> { |
// Test that we properly send SRTP with RTCP from a thread. |
void SendSrtpToSrtpOnThread() { |
- bool sent_rtp1, sent_rtp2, sent_rtcp1, sent_rtcp2; |
+ std::atomic<bool> sent_rtp1, sent_rtp2, sent_rtcp1, sent_rtcp2; |
CreateChannels(RTCP | SECURE, RTCP | SECURE); |
EXPECT_TRUE(SendInitiate()); |
EXPECT_TRUE(SendAccept()); |
@@ -1624,7 +1624,7 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> { |
} |
void TestFlushRtcp() { |
- bool send_rtcp1; |
+ std::atomic<bool> send_rtcp1; |
CreateChannels(RTCP, RTCP); |
EXPECT_TRUE(SendInitiate()); |