Author: sayer
Date: 2008-11-05 18:36:35 +0100 (Wed, 05 Nov 2008)
New Revision: 1124
Modified:
trunk/core/AmSession.cpp
trunk/core/AmSession.h
Log:
session_num needs to be protected with mutex in multi core systems (cache)
Modified: trunk/core/AmSession.cpp
===================================================================
--- trunk/core/AmSession.cpp 2008-11-05 17:30:38 UTC (rev 1123)
+++ trunk/core/AmSession.cpp 2008-11-05 17:36:35 UTC (rev 1124)
@@ -50,6 +50,7 @@
#include <sys/time.h>
volatile unsigned int AmSession::session_num = 0;
+AmMutex AmSession::session_num_mut;
// AmSession methods
@@ -320,7 +321,9 @@
}
#endif
+ session_num_mut.lock();
session_num++;
+ session_num_mut.unlock();
try {
try {
@@ -368,7 +371,9 @@
destroy();
+ session_num_mut.lock();
session_num--;
+ session_num_mut.unlock();
// wait at least until session is out of RtpScheduler
//detached.wait_for();
@@ -409,7 +414,11 @@
unsigned int AmSession::getSessionNum()
{
- return AmSession::session_num;
+ unsigned int res = 0;
+ session_num_mut.lock();
+ res = session_num;
+ session_num_mut.unlock();
+ return res;
}
Modified: trunk/core/AmSession.h
===================================================================
--- trunk/core/AmSession.h 2008-11-05 17:30:38 UTC (rev 1123)
+++ trunk/core/AmSession.h 2008-11-05 17:36:35 UTC (rev 1124)
@@ -100,6 +100,7 @@
AmCondition<bool> detached;
static volatile unsigned int session_num;
+ static AmMutex session_num_mut;
friend class AmMediaProcessor;
friend class AmMediaProcessorThread;
_______________________________________________
Semsdev mailing list
[email protected]
http://lists.iptel.org/mailman/listinfo/semsdev