3

ブースト ロックフリー フリーリストのサイズが最大 65535 オブジェクトに制限されているのはなぜですか?

64 ビット マシンの場合にキューのサイズを増やす方法。

typedef boost::lockfree::queue<int, boost::lockfree::fixed_size<true>> MyQueue;
MyQueue queue(1024*100); << how to increase the size to more than 65534?

ブーストの実装では、ABA の問題を回避するために、キュー アイテムに余分なタグ ビットが追加されます。現在、32 ビットの値 (ポインターに 16 ビット、タグに 16 ビット) を使用しています。

64 ビット値 (ポインターに 32 ビット、タグに 32 ビット) を使用するように変更するにはどうすればよいですか?

tagged_index::tag_t と index_t を unin32_t に基づいて ba に変更するだけで十分ですか?

4

1 に答える 1