3

ブーストスレッドライブラリには、スレッド固有の(ローカル)ストレージの抽象化があります。ソースコードをざっと見てみましたが、TSS機能は、boost :: threadから作成された天気に関係なく、既存のスレッドを使用するアプリケーションで使用できるようです。つまり、特定のコールバックがカーネルに登録されていることを意味します。スレッドまたはプロセスがスコープ外になるときに、TSSオブジェクトのデストラクタを呼び出す可能性のあるコールバック関数をフックします。これらのコールバックを見つけました。

さまざまなWebサーバーのワーカースレッド内にOpenSSLからHMAC_CTXをキャッシュする必要があります(私がやろうとしていることについては、この詳細な質問を参照してください)。そのため、スレッドの存続期間(Web)を制御しません。 -サーバーは行います。したがって、boost::threadによって作成されていないスレッドでTSS機能を使用します。

キャッシングロジックの実装を開始する前に、仮定を検証したかったのですが、ロジックに欠陥はありますか?

4

2 に答える 2

1

あなたが正しい。boost::threadで作成されていないスレッドに使用できます。test_tss.cppを見ると、それらが正確にテストしていることがわかります。これは、POSIXスレッドとWindowsスレッドの両方で機能するはずです。

于 2010-04-13T04:02:46.000 に答える
1

メインスレッドが終了したときにデストラクタが呼び出されないため、これは部分的に正しいです。

于 2010-04-19T22:36:32.143 に答える