mirror of
https://github.com/kidfromjupiter/nearby.git
synced 2026-09-15 15:16:12 -04:00
Fix data race problem caused by a simulated_clock
PiperOrigin-RevId: 525540869
This commit is contained in:
@@ -50,6 +50,7 @@ void MediumEnvironment::Start(EnvironmentConfig config) {
|
||||
NEARBY_LOGS(INFO) << "MediumEnvironment::Start()";
|
||||
config_ = std::move(config);
|
||||
if (config_.use_simulated_clock) {
|
||||
MutexLock lock(&mutex_);
|
||||
simulated_clock_ = std::make_unique<FakeClock>();
|
||||
}
|
||||
Reset();
|
||||
@@ -60,8 +61,11 @@ void MediumEnvironment::Stop() {
|
||||
if (enabled_.exchange(false)) {
|
||||
NEARBY_LOGS(INFO) << "MediumEnvironment::Stop()";
|
||||
Sync(false);
|
||||
if (config_.use_simulated_clock) {
|
||||
MutexLock lock(&mutex_);
|
||||
simulated_clock_.reset();
|
||||
}
|
||||
config_ = {};
|
||||
simulated_clock_.reset();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1205,6 +1209,7 @@ void MediumEnvironment::SetFeatureFlags(const FeatureFlags::Flags& flags) {
|
||||
}
|
||||
|
||||
absl::optional<FakeClock*> MediumEnvironment::GetSimulatedClock() {
|
||||
MutexLock lock(&mutex_);
|
||||
if (simulated_clock_) {
|
||||
return absl::optional<FakeClock*>(simulated_clock_.get());
|
||||
}
|
||||
|
||||
@@ -511,7 +511,7 @@ class MediumEnvironment {
|
||||
|
||||
bool use_valid_peer_connection_ = true;
|
||||
absl::Duration peer_connection_latency_ = absl::ZeroDuration();
|
||||
std::unique_ptr<FakeClock> simulated_clock_;
|
||||
std::unique_ptr<FakeClock> simulated_clock_ ABSL_GUARDED_BY(mutex_);
|
||||
};
|
||||
|
||||
} // namespace nearby
|
||||
|
||||
Reference in New Issue
Block a user