やっと負荷かけても落ちなくなった。 詳細書こうかと思ったけどめんどいので適当に概要… 結局、freed memoryを参照しても落ちないように自前でメモリ管理をやる必要があったというだけでした。そもそもせっかくLockFreeなコンテナなのに、メモリ管理がlockfreeじゃないとか悲しいしね。 あとは、CASが失敗したらちょっとwaitをかけて、他スレッドを優先させてやったりとか。こうした方がむしろパフォーマンスあがった。 実装はここらへんを見てください: http://nyaxtstep.com/trac/libfecti/browser/trunk/fecti/Utility FMTQueueとかFBlockMemoryAllocatorあたり 左からNon-blocking Concurrent Queue, Two-lock Blocking Queue, std::queue