Сервер Web своими руками. Язык HTML, приложения CGI и ISAPI




Приложение FILEUPL - часть 14


В частности, расширение fileupl.dll выполняет запись в файл, а эта операция является критической, так как всем пользователям предлагается записывать свои данные только в один файл. Чтобы избежать взаимных коллизий, можно предложить простейшее средство синхронизации - критические секции.

Перед началом записи в файл расширение ISAPI должно войти в критическую секцию, а после использования - выйти из нее. В этом случае пользователи будут работать с файлом по очереди. Для работы с критическими секциями предназначены функции InitializeCriticalSection, EnterCriticalSection, LeaveCriticalSection, DeleteCriticalSection.

Критическая секция должна быть создана в момент инициализации библиотеки DLL расширения ISAPI, поэтому вызов функции InitializeCriticalSection должен быть размещен в функции DllMain. Удаление критической секции можно выполнить в обработчике функции TerminateExtension, которая вызывается перед удалением расширения из адресного пространства сервера WWW.

Подробную информацию о работе с библиотеками DLL в среде операционной системы Microsoft Windows NT  вы найдете в 27 томе “Библиотеки системного программиста”.




Содержание  Назад  Вперед