diff options
author | Hoa V. DINH <dinh.viet.hoa@gmail.com> | 2016-03-03 22:45:19 -0800 |
---|---|---|
committer | Hoa V. DINH <dinh.viet.hoa@gmail.com> | 2016-03-03 22:45:19 -0800 |
commit | a55c8f370bd663ea1d31fed230987711aa1cf176 (patch) | |
tree | 567a995e2f0565d24aebff0fab959d3c95045670 /src/core/imap/MCIMAPSession.cpp | |
parent | 886aae2ab94c74a4d4c644c446f67d37a333c1f9 (diff) |
Thread safety on logger
Diffstat (limited to 'src/core/imap/MCIMAPSession.cpp')
-rwxr-xr-x | src/core/imap/MCIMAPSession.cpp | 11 |
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()); |