dbgroup-nagoya-u / pmem-atomic

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

記述子プールの占有状態だけをDRAMで管理 #15

Closed manabinohibi closed 1 year ago

manabinohibi commented 1 year ago

@baycedar https://github.com/dbgroup-nagoya-u/pmwcas/pull/14#pullrequestreview-1168041885 の修正です. まだできていないのですが,教えてほしいことがあるのでPR出します.

ElementHolderの2つのメンバ変数(desc_is_reserved_)は,それぞれ記述子配列の要素と占有状態配列の要素(へのアドレス)を保持する,という構造で間違ってないでしょうか? それだと思って実装してますが,shared_ptrうまく渡せなくて困ってます.

また,ElementHolderのコンストラクタはstd::make_unique<ElementHolder>したときに呼ばれていますか?

お忙しいところ恐縮ですが,ご教授願います.

manabinohibi commented 1 year ago

どうもありがとうございます! 確認しつつ修正します.

いえ,reserved_arr_を配列ごとshared_ptrとして管理しているので,配列まるごとElementHolder側でも持つ必要があります.

なるほど.今回の場合はある一つの要素だけ参照できればいいけど,実装上そうしないといけないってことであってますか?

baycedar commented 1 year ago

今回の場合はある一つの要素だけ参照できればいいけど,実装上そうしないといけないってことであってますか?

そうですね,ElementHolderから参照したいのは1つだけですが,Pool側では配列まるごとshared_ptr化しなきゃいけないっていう実装上の理由です.