From bc65355dda9e2fc83d2ad6b9657ea20e82e52ada Mon Sep 17 00:00:00 2001 From: Richard J Schnorenberg Date: Thu, 13 Sep 2018 21:10:11 -0500 Subject: [PATCH] Synchronize ManagerConnection socket writes to make SendAction thread safe --- Asterisk.2013/Asterisk.NET/Manager/ManagerConnection.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Asterisk.2013/Asterisk.NET/Manager/ManagerConnection.cs b/Asterisk.2013/Asterisk.NET/Manager/ManagerConnection.cs index d1fe667..bd551a3 100644 --- a/Asterisk.2013/Asterisk.NET/Manager/ManagerConnection.cs +++ b/Asterisk.2013/Asterisk.NET/Manager/ManagerConnection.cs @@ -45,6 +45,7 @@ namespace AsterNET.Manager private int pingInterval = 10000; private object lockSocket = new object(); + private object lockSocketWrite = new object(); private object lockHandlers = new object(); private bool enableEvents = true; @@ -1506,7 +1507,10 @@ namespace AsterNET.Manager private void sendToAsterisk(string buffer) { - mrSocket.Write(buffer); + lock (lockSocketWrite) + { + mrSocket.Write(buffer); + } } #endregion