Вопрос об увеличении объема памяти в конкретном потоке (boost / thread / tss.hpp) - PullRequest
3 голосов
/ 12 апреля 2010

В расширенной библиотеке потоков есть абстракция для конкретного (локального) хранилища потоков . Я пролистал исходный код, и кажется, что функциональность TSS можно использовать в приложении с любым существующим потоком независимо от того, была ли она создана из boost :: thread --ie, это означает, что определенные обратные вызовы регистрируются ядром для подключить функцию обратного вызова, которая может вызывать деструктор любых объектов TSS, когда поток или процесс выходит из области видимости. Я нашел эти обратные вызовы.

Мне нужно кэшировать HMAC_CTX из OpenSSL внутри рабочих потоков различных веб-серверов (см. this , подробно, вопрос о том, что я пытаюсь сделать), и поэтому я не контролирую жизнь время потока - веб-сервер делает. Поэтому я буду использовать функциональность TSS для потоков, не созданных boost :: thread.

Я просто хотел проверить свои предположения до того, как начал реализовывать логику кэширования, есть ли в моей логике недостатки?

Ответы [ 2 ]

1 голос
/ 20 апреля 2010

Это частично верно, поскольку деструктор не вызывается, когда основной поток завершается.

1 голос
/ 13 апреля 2010

Ты прав. Вы можете использовать его для потоков, не созданных boost :: thread. Если вы посмотрите в test_tss.cpp, вы увидите, что они проверяют именно это, и он должен работать как с потоками POSIX, так и с Windows.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...