From c45cdd75619af3aab8584f8c69c8e6b23cef975b Mon Sep 17 00:00:00 2001 From: Jean-Francois Dockes Date: Thu, 28 Apr 2011 14:28:19 +0200 Subject: [PATCH] common data locking: remove deadlock in mbox cache locking --- src/internfile/mh_mbox.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/internfile/mh_mbox.cpp b/src/internfile/mh_mbox.cpp index 76fe56b0..eeb4c1aa 100644 --- a/src/internfile/mh_mbox.cpp +++ b/src/internfile/mh_mbox.cpp @@ -80,13 +80,13 @@ public: ~MboxCache() {} mbhoff_type get_offset(RclConfig *config, const string& udi, int msgnum) { - PTMutexLocker locker(o_mutex); LOGDEB0(("MboxCache::get_offsets: udi [%s] msgnum %d\n", udi.c_str(), msgnum)); if (!ok(config)) { LOGDEB0(("MboxCache::get_offsets: init failed\n")); return -1; } + PTMutexLocker locker(o_mutex); string fn = makefilename(udi); FILE *fp = 0; if ((fp = fopen(fn.c_str(), "r")) == 0) { @@ -128,12 +128,12 @@ public: void put_offsets(RclConfig *config, const string& udi, mbhoff_type fsize, vector& offs) { - PTMutexLocker locker(o_mutex); LOGDEB0(("MboxCache::put_offsets: %u offsets\n", offs.size())); if (!ok(config) || !maybemakedir()) return; if (fsize < m_minfsize) return; + PTMutexLocker locker(o_mutex); string fn = makefilename(udi); FILE *fp; if ((fp = fopen(fn.c_str(), "w")) == 0) {