|
From: <he...@us...> - 2010-11-15 00:01:20
|
Revision: 225
http://simspark.svn.sourceforge.net/simspark/?rev=225&view=rev
Author: hedayat
Date: 2010-11-15 00:01:13 +0000 (Mon, 15 Nov 2010)
Log Message:
-----------
Small changes to fix the behavior. Still needs some attention (the agent proxy's timing should not be affected by the way agent sends/receives data) and testing
Modified Paths:
--------------
trunk/spark/lib/oxygen/proxyserver/agentproxy.cpp
Modified: trunk/spark/lib/oxygen/proxyserver/agentproxy.cpp
===================================================================
--- trunk/spark/lib/oxygen/proxyserver/agentproxy.cpp 2010-09-28 16:21:10 UTC (rev 224)
+++ trunk/spark/lib/oxygen/proxyserver/agentproxy.cpp 2010-11-15 00:01:13 UTC (rev 225)
@@ -122,6 +122,7 @@
while (!mAgentBuffer->IsEmpty() &&
mNetMessage->Extract(mAgentBuffer, agentmsg))
{
+ mNetMessage->PrepareToSend(agentmsg);
mServerSocket->send(agentmsg.data(), agentmsg.size());
}
agentBufLock.unlock();
@@ -129,12 +130,9 @@
mServerSocket->send(syncMsg.data(), syncMsg.size());
do
{
- int retval = mServerSocket->recv(mCycleMillisecs,
- recvbuf.data(), recvbuf.size());
+ int retval = mServerSocket->recv(recvbuf.data(), recvbuf.size());
if (retval > 0)
netbuf->AddFragment(string(recvbuf.data(), recvbuf.size()));
- else if (retval < 0 && errno == EAGAIN)
- break;
else
{
GetLog()->Error()
@@ -148,12 +146,12 @@
if (!servermsg.empty())
{
- mNetMessage->PrepareToSend(servermsg);
- mAgentSocket->send(servermsg.data(), servermsg.size(),
- MSG_DONTWAIT, Socket::DONT_CHECK);
-
cycleFinishTime = boost::get_system_time()
+ boost::posix_time::milliseconds(mCycleMillisecs);
+
+ mNetMessage->PrepareToSend(servermsg);
+ mAgentSocket->send(servermsg.data(), servermsg.size(),
+ Socket::DONT_CHECK);
}
}
catch (boost::thread_interrupted e)
@@ -171,8 +169,7 @@
while (!mFinished)
{
- int retval = mAgentSocket->recv(mCycleMillisecs * 4,
- recvbuf.data(), recvbuf.size());
+ int retval = mAgentSocket->recv(recvbuf.data(), recvbuf.size());
if (retval > 0)
{
boost::mutex::scoped_lock agentBufLock(mAgentBufferMutex);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|