Skip to content

Commit abff35f

Browse files
committed
change mutex order
1 parent dca1523 commit abff35f

File tree

3 files changed

+8
-7
lines changed

3 files changed

+8
-7
lines changed

keyvi/include/keyvi/index/internal/index_reader_worker.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,12 +115,12 @@ class IndexReaderWorker final {
115115
}
116116

117117
private:
118+
std::mutex mutex_;
118119
boost::filesystem::path index_directory_;
119120
boost::filesystem::path index_toc_file_;
120121
std::time_t last_modification_time_;
121122
read_only_segments_t segments_;
122123
std::weak_ptr<read_only_segment_vec_t> segments_weak_;
123-
std::mutex mutex_;
124124
std::unordered_map<std::string, read_only_segment_t> segments_by_name_;
125125
std::chrono::milliseconds refresh_interval_;
126126
std::thread update_thread_;

keyvi/include/keyvi/index/internal/read_only_segment.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,9 @@ class ReadOnlySegment {
218218
const deleted_t& DeletedKeysDirect() const { return *deleted_keys_; }
219219

220220
private:
221+
//! a mutex to secure access to the deleted keys shared pointer
222+
std::mutex mutex_;
223+
221224
//! path of the underlying dictionary
222225
boost::filesystem::path dictionary_path_;
223226

@@ -245,9 +248,6 @@ class ReadOnlySegment {
245248
//! a weak ptr to deleted keys for access in the main thread
246249
std::weak_ptr<deleted_t> deleted_keys_weak_;
247250

248-
//! a mutex to secure access to the deleted keys shared pointer
249-
std::mutex mutex_;
250-
251251
//! last modification time for the deleted keys file
252252
std::time_t last_modification_time_deleted_keys_;
253253

keyvi/include/keyvi/index/internal/segment.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ class Segment final : public ReadOnlySegment {
4949

5050
explicit Segment(const boost::filesystem::path& path, bool no_deletes = false)
5151
: ReadOnlySegment(path, false, !no_deletes),
52+
lazy_load_mutex_(),
5253
deleted_keys_for_write_(),
5354
deleted_keys_during_merge_for_write_(),
5455
dictionary_loaded(false),
@@ -61,9 +62,9 @@ class Segment final : public ReadOnlySegment {
6162

6263
explicit Segment(const boost::filesystem::path& path, const std::vector<std::shared_ptr<Segment>>& parent_segments)
6364
: ReadOnlySegment(path, false, false),
65+
lazy_load_mutex_(),
6466
deleted_keys_for_write_(),
6567
deleted_keys_during_merge_for_write_(),
66-
lazy_load_mutex_(),
6768
dictionary_loaded(false),
6869
deletes_loaded(true),
6970
in_merge_(false),
@@ -184,9 +185,9 @@ class Segment final : public ReadOnlySegment {
184185
}
185186

186187
private:
188+
std::mutex lazy_load_mutex_;
187189
deleted_t deleted_keys_for_write_;
188190
deleted_t deleted_keys_during_merge_for_write_;
189-
std::mutex lazy_load_mutex_;
190191
bool dictionary_loaded;
191192
bool deletes_loaded;
192193
bool in_merge_;
@@ -198,9 +199,9 @@ class Segment final : public ReadOnlySegment {
198199

199200
explicit Segment(const dictionary::dictionary_properties_t& dictionary_properties, bool no_deletes = false)
200201
: ReadOnlySegment(dictionary_properties, false, !no_deletes),
202+
lazy_load_mutex_(),
201203
deleted_keys_for_write_(),
202204
deleted_keys_during_merge_for_write_(),
203-
lazy_load_mutex_(),
204205
dictionary_loaded(false),
205206
deletes_loaded(no_deletes),
206207
in_merge_(false),

0 commit comments

Comments
 (0)