|
From: <he...@us...> - 2010-06-05 22:25:01
|
Revision: 209
http://simspark.svn.sourceforge.net/simspark/?rev=209&view=rev
Author: hedayat
Date: 2010-06-05 22:24:55 +0000 (Sat, 05 Jun 2010)
Log Message:
-----------
(Hopefully) fixed the race condition when logging is enabled
Removed an extra output line
Modified Paths:
--------------
trunk/rcssserver3d/plugin/soccer/trainercommandparser/trainercommandparser.cpp
trunk/spark/ChangeLog
trunk/spark/lib/oxygen/monitorserver/monitorserver.cpp
trunk/spark/lib/oxygen/monitorserver/monitorserver.h
Modified: trunk/rcssserver3d/plugin/soccer/trainercommandparser/trainercommandparser.cpp
===================================================================
--- trunk/rcssserver3d/plugin/soccer/trainercommandparser/trainercommandparser.cpp 2010-06-04 21:19:08 UTC (rev 208)
+++ trunk/rcssserver3d/plugin/soccer/trainercommandparser/trainercommandparser.cpp 2010-06-05 22:24:55 UTC (rev 209)
@@ -159,8 +159,6 @@
bool
TrainerCommandParser::ParsePredicate(const oxygen::Predicate & predicate)
{
- cerr << "repos 1" << endl;
-
SoccerBase::GetGameState(*this,mGameState);
SoccerBase::GetSoccerRuleAspect(*this,mSoccerRule);
Modified: trunk/spark/ChangeLog
===================================================================
--- trunk/spark/ChangeLog 2010-06-04 21:19:08 UTC (rev 208)
+++ trunk/spark/ChangeLog 2010-06-05 22:24:55 UTC (rev 209)
@@ -1,3 +1,9 @@
+2010-06-06 Hedayat Vatankhah <he...@gr...>
+
+ * lib/oxygen/monitorserver/monitorserver.h:
+ * lib/oxygen/monitorserver/monitorserver.cpp (MonitorServer::GetMonitorData):
+ - more protection against simultaneous access (by monitor(s) and the logger)
+
2010-06-05 Hedayat Vatankhah <he...@gr...>
* lib/oxygen/simulationserver/simulationserver.cpp (SimulationServer::Step):
Modified: trunk/spark/lib/oxygen/monitorserver/monitorserver.cpp
===================================================================
--- trunk/spark/lib/oxygen/monitorserver/monitorserver.cpp 2010-06-04 21:19:08 UTC (rev 208)
+++ trunk/spark/lib/oxygen/monitorserver/monitorserver.cpp 2010-06-05 22:24:55 UTC (rev 209)
@@ -170,6 +170,7 @@
}
PredicateList pList;
+ boost::mutex::scoped_lock dataLock(mMonitorMutex);
CollectItemPredicates(true,pList);
return monitorSystem->GetMonitorHeaderInfo(pList);
}
@@ -177,7 +178,7 @@
string MonitorServer::GetMonitorData()
{
int cycle = mSimulationServer->GetCycle();
- boost::mutex::scoped_lock dataLock(mDataMutex);
+ boost::mutex::scoped_lock dataLock(mMonitorMutex);
if ( cycle == mDataCycle ){
return mData;
@@ -203,7 +204,7 @@
if (monitorSystem.get() != 0)
{
+ boost::mutex::scoped_lock dataLock(mMonitorMutex);
monitorSystem->ParseMonitorMessage(data);
}
}
-
Modified: trunk/spark/lib/oxygen/monitorserver/monitorserver.h
===================================================================
--- trunk/spark/lib/oxygen/monitorserver/monitorserver.h 2010-06-04 21:19:08 UTC (rev 208)
+++ trunk/spark/lib/oxygen/monitorserver/monitorserver.h 2010-06-05 22:24:55 UTC (rev 209)
@@ -92,8 +92,8 @@
/** the cycle of cacahed data */
int mDataCycle;
- /** a mutex to protect mData and mDataCycle variables */
- boost::mutex mDataMutex;
+ /** a mutex to protect monitor related internal data */
+ boost::mutex mMonitorMutex;
};
DECLARE_CLASS(MonitorServer);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|