[Libreoffice-commits] online.git: common/Util.cpp net/Socket.cpp net/Socket.hpp
Ashod Nakashian
ashod.nakashian at collabora.co.uk
Mon Apr 3 05:12:18 UTC 2017
common/Util.cpp | 12 ++++++------
net/Socket.cpp | 2 ++
net/Socket.hpp | 21 ++++++++++++++-------
3 files changed, 22 insertions(+), 13 deletions(-)
New commits:
commit e0822f851647b17fca3043c8f17e52ebe8090aa2
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date: Sun Apr 2 17:38:05 2017 -0400
wsd: better thread affinity logging
Change-Id: I9e4bc3fe864aa409dc4874a9d6fc4ab22bfea592
Reviewed-on: https://gerrit.libreoffice.org/36029
Reviewed-by: Ashod Nakashian <ashnakash at gmail.com>
Tested-by: Ashod Nakashian <ashnakash at gmail.com>
diff --git a/common/Util.cpp b/common/Util.cpp
index 8e9552b6..3260d130 100644
--- a/common/Util.cpp
+++ b/common/Util.cpp
@@ -265,13 +265,13 @@ namespace Util
strncpy(ThreadName, s.c_str(), 31);
ThreadName[31] = '\0';
if (prctl(PR_SET_NAME, reinterpret_cast<unsigned long>(s.c_str()), 0, 0, 0) != 0)
- {
- LOG_SYS("Cannot set thread name to " << s << ".");
- }
+ LOG_SYS("Cannot set thread name of " << getThreadId() << " (0x" <<
+ std::hex << std::this_thread::get_id() <<
+ std::dec << ") to [" << s << "].");
else
- {
- LOG_INF("Thread " << std::hex << std::this_thread::get_id() << std::dec << " is now called " << s);
- }
+ LOG_INF("Thread " << getThreadId() << " (0x" <<
+ std::hex << std::this_thread::get_id() <<
+ std::dec << ") is now called [" << s << "].");
}
const char *getThreadName()
diff --git a/net/Socket.cpp b/net/Socket.cpp
index 39906bf7..2b9899f8 100644
--- a/net/Socket.cpp
+++ b/net/Socket.cpp
@@ -57,6 +57,8 @@ SocketPoll::SocketPoll(const std::string& threadName)
}
_owner = std::this_thread::get_id();
+ LOG_DBG("Thread affinity of " << _name << " set to 0x" <<
+ std::hex << _owner << "." << std::dec);
}
SocketPoll::~SocketPoll()
diff --git a/net/Socket.hpp b/net/Socket.hpp
index 4d723d99..94d4cc34 100644
--- a/net/Socket.hpp
+++ b/net/Socket.hpp
@@ -185,7 +185,12 @@ public:
void setThreadOwner(const std::thread::id &id)
{
#if ENABLE_DEBUG
- _owner = id;
+ if (id != _owner)
+ {
+ LOG_DBG("#" << _fd << " Thread affinity set to 0x" << std::hex <<
+ id << " (was 0x" << _owner << ")." << std::dec);
+ _owner = id;
+ }
#else
(void)id;
#endif
@@ -196,8 +201,10 @@ public:
#if ENABLE_DEBUG
const bool sameThread = std::this_thread::get_id() == _owner;
if (!sameThread)
- LOG_WRN("#" << _fd << " invoked from foreign thread. Expected: " <<
- std::hex << _owner << std::dec);
+ LOG_WRN("#" << _fd << " Invoked from foreign thread. Expected: 0x" << std::hex <<
+ _owner << " but called from 0x" << std::this_thread::get_id() << " (" <<
+ std::dec << Util::getThreadId() << ").");
+
if (hard)
return sameThread;
else
@@ -224,12 +231,12 @@ protected:
_sendBufferSize = DefaultSendBufferSize;
#if ENABLE_DEBUG
_owner = std::this_thread::get_id();
+ LOG_DBG("#" << _fd << " Thread affinity set to 0x" << std::hex << _owner << "." << std::dec);
const int oldSize = getSocketBufferSize();
setSocketBufferSize(0);
LOG_TRC("#" << _fd << ": Buffer size: " << getSendBufferSize() << " (was " << oldSize << ")");
#endif
-
}
private:
@@ -291,9 +298,9 @@ public:
bool isCorrectThread() const
{
if (std::this_thread::get_id() != _owner)
- LOG_WRN("Incorrect thread affinity. Expected: 0x" << std::hex << _owner <<
- " but called from " << std::this_thread::get_id() << std::dec <<
- ", stop: " << _stop);
+ LOG_WRN("Incorrect thread affinity for " << _name << ". Expected: 0x" << std::hex <<
+ _owner << " (" << std::dec << Util::getThreadId() << ") but called from 0x" <<
+ std::hex << std::this_thread::get_id() << std::dec << ", stop: " << _stop);
return _stop || std::this_thread::get_id() == _owner;
}
More information about the Libreoffice-commits
mailing list