Windows Thread Pool and TLS

Vovka
Уже с Приветом
Posts: 1906
Joined: 14 Mar 2001 10:01

Windows Thread Pool and TLS

Post by Vovka »

Цитата из MSDN:
To use thread pooling, the work items and all the functions they call must be thread-pool safe. A safe function does not assume that thread executing it is a dedicated or persistent thread. In general, you should avoid using thread local storage...


Кто может объяснить, почему именно нельзя использовать TLS, и к каких случаях всё-таки можно (раз уж они пишут "in general...")? Вроде как интуитивно понимаю, что причина может быть в том, что если нить заблокируется при вводе-выводе, например, то она может "ожить" потом с другим TLS, правильно?
И ещё, а как тогда быть с C++ exceptions? Они ведь вроде frame в TLS хранят, нет?
Vovka
Уже с Приветом
Posts: 1906
Joined: 14 Mar 2001 10:01

Re: Windows Thread Pool and TLS

Post by Vovka »

Timberwolf wrote: Посмотрите вот это: Use of Thread Local Storage in an Ext. Stored Procedure


Спасибо!
Выходит, не так всё мрачно - во-первых, осложнения имеют место быть только если код находится в DLL, во-вторых, даже там не такой уж безнадёжный случай, если аккуратно всё писать.

Return to “Вопросы и новости IT”