3

La bibliothèque de threads boost a un abstraction for thread specific (local) storage. J'ai survolé le code source et il semble que la fonctionnalité TSS peut être utilisée dans une application avec n'importe quel thread existant quel que soit le temps qu'il a été créé à partir de boost :: thread --ie, cela implique que certains callbacks sont enregistrés avec le noyau hook dans une fonction de rappel qui peut appeler le destructeur de tout objet TSS lorsque le thread ou le processus est hors de portée. J'ai trouvé ces rappels. J'ai besoin de cache HMAC_CTX de OpenSSL à l'intérieur des threads de travail de divers serveurs Web (voir this, détaillé, question pour ce que j'essaie de faire), et en tant que tel, je ne contrôle pas la durée de vie du thread - Le serveur web fait. Par conséquent, j'utiliserai la fonctionnalité TSS sur les threads qui ne sont pas créés par boost :: thread. Je voulais juste valider mes hypothèses avant de commencer à implémenter la logique de mise en cache, y a-t-il des failles dans ma logique?Question de stockage spécifique à Boost Thread (boost/thread/tss.hpp)

Répondre

1

Vous avez raison. Vous pouvez l'utiliser pour les threads non créés par boost :: thread. Si vous regardez dans test_tss.cpp vous pouvez voir qu'ils testent exactement cela, et cela devrait fonctionner avec les threads POSIX et Windows.

+0

Merci! Votre globe oculaire est apprécié. –

1

Ceci est en partie exact, car le destructeur n'est pas appelé lorsque le filetage principal est terminé.