dbgroup-nagoya-u / pmem-atomic

A utility library for atomic operations in persistent memory.
Apache License 2.0
0 stars 0 forks source link

記述子プールを配列として用意する #7

Closed manabinohibi closed 2 years ago

manabinohibi commented 2 years ago

記述子プールを配列として用意するように実装しました.(関連#4)

結局書いたテストは

  1. メインスレッドで記述子を2回取得し,同じものかどうか
  2. プールサイズ分のスレッドを立てて,それぞれで記述子を取得し,すべて異なるかどうか,またその状態で別のスレッドを立てて記述子が新たに取得できないかどうか
  3. プールサイズ分のスレッドを立てて,それぞれで記述子を取得した後スレッドを全て終了させ,もう一度プールサイズ分のスレッドを立てて,それぞれで記述子を正しく取得できるかどうか

ほんとは2と3を一緒にしようと思ったんですが,別で立てた1つのスレッドを適切なタイミングで終了させる実装がすぐできなさそうだったのでいったん諦めました. (単純に一緒にすると無限ループになります.最後のスレッドが記述子を取得できないからだと思っています)

拙いコードですが,目を通していただけると嬉しいです. よろしくお願いします!!!

manabinohibi commented 2 years ago

どうもありがとうございます! 指摘をもとに修正を行いました.再度チェックをお願いします.

最後の指摘についてですが,その通りにやると止まってしまったのでメインプロセスで共有ロックを取得するところを中括弧で囲いました.ら通りました. extra_tがロックをとれずに止まってると思ったのでそうしたのですが,正しい書き方でしょうか? (この中括弧がブロックスコープという概念だったことを今知りました)

以上,よろしくお願いします!!!

manabinohibi commented 2 years ago

ありがとうございます!マージします. resolve #5