From 72f8facc82369cfc41422dba07739f45ad2c3828 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20Zieli=C5=84ski?= Date: Fri, 19 May 2023 20:49:01 +0200 Subject: [PATCH] Fixed deadlock in WaterAdopter --- lib/rmg/WaterAdopter.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/rmg/WaterAdopter.cpp b/lib/rmg/WaterAdopter.cpp index 310bc6050..19505e7a6 100644 --- a/lib/rmg/WaterAdopter.cpp +++ b/lib/rmg/WaterAdopter.cpp @@ -35,7 +35,6 @@ void WaterAdopter::process() void WaterAdopter::init() { //make dependencies - DEPENDENCY_ALL(WaterAdopter); DEPENDENCY(TownPlacer); POSTFUNCTION(ConnectionsPlacer); POSTFUNCTION(TreasurePlacer); @@ -224,7 +223,10 @@ void WaterAdopter::createWater(EWaterContent::EWaterContent waterContent) } } - map.getZones()[waterZoneId]->area().unite(waterArea); + { + Zone::Lock waterLock(map.getZones()[waterZoneId]->areaMutex); + map.getZones()[waterZoneId]->area().unite(waterArea); + } Zone::Lock lock(zone.areaMutex); zone.area().subtract(waterArea); zone.areaPossible().subtract(waterArea);