Решение проблемы долговременных состояний в многопоточной среде

Решение проблемы долговременных состояний в многопоточной среде

В искомом решении сочетаются несколько компонентов:

• Библиотека DLL, в которой содержатся функции, обеспечивающие отправку и прием сообщений.

• Функция, представляющая точку входа в DLL.

• Локальная область хранения потока (TLS, глава 7). Подключение процесса к библиотеке сопровождается созданием индекса DLL, а отключение — уничтожением. Значение индекса хранится в статическом хранилище, доступ к которому имеют все потоки.

• Структура, в которой хранится буфер и его текущее состояние. Структура распределяется всякий раз, когда к библиотеке подключается новый поток, и его адрес сохраняется в записи TLS для данного потока. При отсоединении потока от библиотеки память, занимаемая его структурой, освобождается.

Таким образом, TLS играет роль статического хранилища, и у каждого потока имеется собственная уникальная копия этого хранилища.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

12.6. Разработка диаграммы состояний в среде Rational Rose

Из книги Самоучитель UML автора Леоненков Александр

12.6. Разработка диаграммы состояний в среде Rational Rose Переходя к рассмотрению диаграммы состояний, следует отметить, что в среде Rational Rose этот тип диаграмм относится только к отдельному классу. Для того чтобы построить диаграмму состояний для класса, его вначале необходимо


Net Passport Microsoft — прекрасное решение проблемы или еще одна лазейка для хакеров?

Из книги автора

Net Passport Microsoft — прекрасное решение проблемы или еще одна лазейка для хакеров? Так уж устроен Интернет, что нам частенько приходится регистрироваться на его сайтах. Например, чтобы получить дополнительную информацию, которая доступна только зарегистрированным


3. Решение проблемы с гаджетами и UAC в Windows 7

Из книги автора

3. Решение проблемы с гаджетами и UAC в Windows 7 В Windows 7 есть одна особенность. Если вы отключили UAC, гаджеты и боковая панель будут работать некорректно. Чтобы все было в порядке и гаджеты работали, как и раньше, вам нужно изменить всего один параметр реестра. Перейдите в


13.4.2. Возможные проблемы и их решение

Из книги автора

13.4.2. Возможные проблемы и их решение Как правило, кэширующий сервер запускается на отдельном компьютере, который подключается к Интернету по коммутируемому соединению. Нужно учитывать, что сервер DNS сразу требует обращения к какому-нибудь сетевому ресурсу. В нашем же


Абонентская плата за культуру: не решение для не проблемы

Из книги автора

Абонентская плата за культуру: не решение для не проблемы Абонентская плата за культуру, или глобальная лицензия, или налог с интернета, перечисляемый правообладателям, это идея, которая витает в умах как минимум последнее десятилетие, но так и не стала реальностью. Для


Функции, безопасные в многопоточной среде

Из книги автора

Функции, безопасные в многопоточной среде Стандарт POSIX.1 требует, чтобы все определенные в нем функции, а также функции, определенные в стандарте ANSI С, были безопасными в многопоточной среде. Исключения из этого правила приведены в табл. 26.1.К сожалению, в POSIX.1 ничего не