summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuo Jinghua <sunmoon1997@gmail.com>2011-12-03 09:23:41 +0800
committerLuo Jinghua <sunmoon1997@gmail.com>2011-12-03 09:23:41 +0800
commitb69b1cb308a5a2d3adf66297095eb8dd596b021b (patch)
tree45e02453ab4005d56be249e098770352ac2ed758
parent2f6d63d1f1c42d60f91271475e386ece3dfe79c4 (diff)
SexyAppFramework: Fixed deadlock in tcp log listener
-rw-r--r--osframework/source/SexyAppFramework/TcpLogListener.cpp11
1 files changed, 5 insertions, 6 deletions
diff --git a/osframework/source/SexyAppFramework/TcpLogListener.cpp b/osframework/source/SexyAppFramework/TcpLogListener.cpp
index 068be34..919a3df 100644
--- a/osframework/source/SexyAppFramework/TcpLogListener.cpp
+++ b/osframework/source/SexyAppFramework/TcpLogListener.cpp
@@ -55,10 +55,6 @@ TcpLogListener::TcpLogListener(const std::string& target) :
mSock->setListen(5))
{
mPort = StrFormat("%d", mSock->getLocalPort());
-
- logtfi(LOG_TAG,
- "Listening on %s:%d\n",
- mHost.c_str(), mSock->getLocalPort());
break;
}
delete mSock;
@@ -142,7 +138,7 @@ bool TcpLogListener::sendRecord(TcpLogRecord* record, TcpLogClient& client)
assert (client.mSock != 0);
// 4b tag 'LGBD'
- // 4b package len
+ // 4b payload len
// 4b pid
// 4b timestamp
// 2b log level
@@ -157,7 +153,7 @@ bool TcpLogListener::sendRecord(TcpLogRecord* record, TcpLogClient& client)
ptr[3] = 'D';
ptr += 4;
- ptr = writel(ptr, sizeof(header) + record->tag.length() + record->msg.length());
+ ptr = writel(ptr, sizeof(header) - 8 + record->tag.length() + record->msg.length());
ptr = writel(ptr, record->pid);
ptr = writel(ptr, record->timestamp);
ptr = writes(ptr, record->lvl);
@@ -174,6 +170,9 @@ bool TcpLogListener::sendRecord(TcpLogRecord* record, TcpLogClient& client)
void TcpLogListener::server()
{
+ logtfi(LOG_TAG, "Listening on %s:%d\n",
+ mHost.c_str(), mSock->getLocalPort());
+
TcpLogRecord record;
while (!mDone && mSock)