Reland "RTM must to acquire lock before called IsMergedUnsafe (#28514)" This reverts commit bebc83c80c638ca3fad5f51122527ace660a9c7c.
diff --git a/fml/raster_thread_merger.cc b/fml/raster_thread_merger.cc index 6110e68..88b33dc 100644 --- a/fml/raster_thread_merger.cc +++ b/fml/raster_thread_merger.cc
@@ -91,7 +91,9 @@ return MessageLoop::GetCurrentTaskQueueId() == platform_queue_id_; } -bool RasterThreadMerger::IsOnRasterizingThread() const { +bool RasterThreadMerger::IsOnRasterizingThread() { + std::scoped_lock lock(mutex_); + if (IsMergedUnSafe()) { return IsOnPlatformThread(); } else {
diff --git a/fml/raster_thread_merger.h b/fml/raster_thread_merger.h index d3babbf..3ad4a4e 100644 --- a/fml/raster_thread_merger.h +++ b/fml/raster_thread_merger.h
@@ -89,7 +89,7 @@ // Returns true if the current thread owns rasterizing. // When the threads are merged, platform thread owns rasterizing. // When un-merged, raster thread owns rasterizing. - bool IsOnRasterizingThread() const; + bool IsOnRasterizingThread(); // Returns true if the current thread is the platform thread. bool IsOnPlatformThread() const;