Add a mutex around SyncSet operations

BUG: 31072273
Change-Id: I037505ad3ab1ba80aecab4e24ec8d1932df2dcf7
diff --git a/src/OpenGL/libEGL/Display.cpp b/src/OpenGL/libEGL/Display.cpp
index 799b072..85dfc73 100644
--- a/src/OpenGL/libEGL/Display.cpp
+++ b/src/OpenGL/libEGL/Display.cpp
@@ -39,6 +39,19 @@
 #include <vector>
 #include <map>
 
+class Guard {
+ public:
+  explicit Guard(sw::BackoffLock* in) : mMutex(in) {
+    mMutex->lock();
+  }
+
+  ~Guard() {
+    mMutex->unlock();
+  }
+ protected:
+  sw::BackoffLock* mMutex;
+};
+
 namespace egl
 {
 
@@ -450,9 +463,8 @@
 EGLSyncKHR Display::createSync(Context *context)
 {
 	FenceSync *fenceSync = new egl::FenceSync(context);
-
+	Guard lk(&mSyncSetMutex);
 	mSyncSet.insert(fenceSync);
-
 	return fenceSync;
 }
 
@@ -487,8 +499,10 @@
 
 void Display::destroySync(FenceSync *sync)
 {
-	mSyncSet.erase(sync);
-
+	{
+		Guard lk(&mSyncSetMutex);
+		mSyncSet.erase(sync);
+	}
 	delete sync;
 }
 
@@ -563,6 +577,7 @@
 
 bool Display::isValidSync(FenceSync *sync)
 {
+	Guard lk(&mSyncSetMutex);
 	return mSyncSet.find(sync) != mSyncSet.end();
 }
 
diff --git a/src/OpenGL/libEGL/Display.h b/src/OpenGL/libEGL/Display.h
index 14d0fe3..d4bf35f 100644
--- a/src/OpenGL/libEGL/Display.h
+++ b/src/OpenGL/libEGL/Display.h
@@ -20,6 +20,7 @@
 #define INCLUDE_DISPLAY_H_
 
 #include "Config.h"
+#include "Common/MutexLock.hpp"
 #include "Sync.hpp"
 
 #include <set>
@@ -86,6 +87,7 @@
 		ContextSet mContextSet;
 
 		typedef std::set<FenceSync*> SyncSet;
+		sw::BackoffLock mSyncSetMutex;
 		SyncSet mSyncSet;
 	};
 }