[Groonga-commit] groonga/grnxx [master] Fix bugs that cause deadlock.

アーカイブの一覧に戻る

susumu.yata null+****@clear*****
Fri Feb 22 14:49:57 JST 2013


susumu.yata	2013-02-22 14:49:57 +0900 (Fri, 22 Feb 2013)

  New Revision: 56f3023fe2c8acb32a4488c2bea8fdec8fc15942
  https://github.com/groonga/grnxx/commit/56f3023fe2c8acb32a4488c2bea8fdec8fc15942

  Log:
    Fix bugs that cause deadlock.
    
    Initialize mutexes.

  Modified files:
    lib/alpha/double_array.cpp
    lib/map/da/basic_trie.cpp
    lib/map/da/large_trie.cpp
    lib/map/double_array.cpp

  Modified: lib/alpha/double_array.cpp (+1 -1)
===================================================================
--- lib/alpha/double_array.cpp    2013-02-22 14:15:32 +0900 (33574de)
+++ lib/alpha/double_array.cpp    2013-02-22 14:49:57 +0900 (6e0ec80)
@@ -43,7 +43,7 @@ DoubleArrayHeader::DoubleArrayHeader()
     num_phantoms_(0),
     num_zombies_(0),
     leaders_(),
-    inter_process_mutex_() {
+    inter_process_mutex_(MUTEX_UNLOCKED) {
   for (uint32_t i = 0; i < DOUBLE_ARRAY_MAX_CHUNK_LEVEL; ++i) {
     leaders_[i] = DOUBLE_ARRAY_INVALID_LEADER;
   }

  Modified: lib/map/da/basic_trie.cpp (+1 -1)
===================================================================
--- lib/map/da/basic_trie.cpp    2013-02-22 14:15:32 +0900 (74f4e91)
+++ lib/map/da/basic_trie.cpp    2013-02-22 14:49:57 +0900 (af7345d)
@@ -28,7 +28,7 @@ Header::Header()
     num_phantoms(0),
     num_zombies(0),
     leaders(),
-    inter_process_mutex() {
+    inter_process_mutex(MUTEX_UNLOCKED) {
   for (uint32_t i = 0; i <= MAX_CHUNK_LEVEL; ++i) {
     leaders[i] = INVALID_LEADER;
   }

  Modified: lib/map/da/large_trie.cpp (+1 -1)
===================================================================
--- lib/map/da/large_trie.cpp    2013-02-22 14:15:32 +0900 (bcca758)
+++ lib/map/da/large_trie.cpp    2013-02-22 14:49:57 +0900 (1c3f7d5)
@@ -28,7 +28,7 @@ Header::Header()
     num_phantoms(0),
     num_zombies(0),
     leaders(),
-    inter_process_mutex() {
+    inter_process_mutex(MUTEX_UNLOCKED) {
   for (uint64_t i = 0; i <= MAX_CHUNK_LEVEL; ++i) {
     leaders[i] = INVALID_LEADER;
   }

  Modified: lib/map/double_array.cpp (+1 -1)
===================================================================
--- lib/map/double_array.cpp    2013-02-22 14:15:32 +0900 (882c466)
+++ lib/map/double_array.cpp    2013-02-22 14:49:57 +0900 (66b9642)
@@ -161,7 +161,7 @@ DoubleArray::DoubleArray()
     front_(nullptr),
     back_(nullptr),
     front_block_id_(io::BLOCK_INVALID_ID),
-    inter_thread_mutex_() {}
+    inter_thread_mutex_(MUTEX_UNLOCKED) {}
 
 void DoubleArray::create_double_array(const MapOptions &, io::Pool pool) {
   pool_ = pool;
-------------- next part --------------
HTML����������������������������...
ダウンロード 



More information about the Groonga-commit mailing list
アーカイブの一覧に戻る