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;