aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/imap/MCIMAPSession.cpp
diff options
context:
space:
mode:
authorGravatar Hoa V. DINH <dinh.viet.hoa@gmail.com>2016-03-03 22:45:19 -0800
committerGravatar Hoa V. DINH <dinh.viet.hoa@gmail.com>2016-03-03 22:45:19 -0800
commita55c8f370bd663ea1d31fed230987711aa1cf176 (patch)
tree567a995e2f0565d24aebff0fab959d3c95045670 /src/core/imap/MCIMAPSession.cpp
parent886aae2ab94c74a4d4c644c446f67d37a333c1f9 (diff)
Thread safety on logger
Diffstat (limited to 'src/core/imap/MCIMAPSession.cpp')
-rwxr-xr-xsrc/core/imap/MCIMAPSession.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/core/imap/MCIMAPSession.cpp b/src/core/imap/MCIMAPSession.cpp
index 96c618a7..8b8565d9 100755
--- a/src/core/imap/MCIMAPSession.cpp
+++ b/src/core/imap/MCIMAPSession.cpp
@@ -514,7 +514,7 @@ static void logger(mailimap * imap, int log_type, const char * buffer, size_t si
IMAPSession * session = (IMAPSession *) context;
session->lockConnectionLogger();
- if (session->connectionLogger() == NULL) {
+ if (session->connectionLoggerNoLock() == NULL) {
session->unlockConnectionLogger();
return;
}
@@ -530,11 +530,11 @@ static void logger(mailimap * imap, int log_type, const char * buffer, size_t si
if (isBuffer) {
AutoreleasePool * pool = new AutoreleasePool();
Data * data = Data::dataWithBytes(buffer, (unsigned int) size);
- session->connectionLogger()->log(session, type, data);
+ session->connectionLoggerNoLock()->log(session, type, data);
pool->release();
}
else {
- session->connectionLogger()->log(session, type, NULL);
+ session->connectionLoggerNoLock()->log(session, type, NULL);
}
session->unlockConnectionLogger();
}
@@ -4015,6 +4015,11 @@ void IMAPSession::unlockConnectionLogger()
pthread_mutex_unlock(&mConnectionLoggerLock);
}
+ConnectionLogger * IMAPSession::connectionLoggerNoLock()
+{
+ return mConnectionLogger;
+}
+
String * IMAPSession::htmlRendering(IMAPMessage * message, String * folder, ErrorCode * pError)
{
HTMLRendererIMAPDataCallback * dataCallback = new HTMLRendererIMAPDataCallback(this, message->uid());