Это гарантирует, что поступающие сообщения обрабатываются атомарно, поскольку никакой другой поток администратора ресурсов (в случае многопоточного администратора, конечно) не может «влезть» и изменить ресурс, пока наш поток этот ресурс использует. Без блокировок два клиентских потока могли бы оба выдать то, что, по их мнению, являлось бы атомарным составным сообщением (скажем, пару «
Блокировка и разблокировка ресурса выполняются вспомогательными функциями по умолчанию (
Заметьте, что ресурс разблокируется
Замечания о функциях установления соединения
Перед тем как углубиться в отдельные сообщения, однако, есть смысл подчеркнуть, что для всех функции установления соединения структура сообщений идентична (взято из
struct _io_connect {
// Для внутреннего использования
uint16_t
uint16_t
uint32_t
uint16_t
uint16_t
uint32_t
uint32_t
uint32_t
uint32_t
uint16_t
uint16_t
uint16_t
uint8_t
// Для конечного пользователя
uint16_t
uint8_t
uint16_t
char
};
Вы заметите, что я разделил структуру struct _io_connect
Первая часть состоит из полей, которые библиотека администратора ресурсов использует для:
• определения типа сообщения, полученного от клиента;
• проверки сообщения на достоверность (не является ли оно дезинформацией);
• отслеживания режима доступа (используется вспомогательными функциями).
Для простоты я бы рекомендовал вам
Вторая половина полей непосредственно относится к вашей реализации функции установления соединения:
Имя пути (и его длина), которые являются
Дополнительные параметры (имена путей, например), соответствующее данной функции установления соединения.
Чтобы получить представление о том, как поле
(В принятой реализации новое имя пути располагается в памяти непосредственно следом за изначальным (на которое указывает
Алфавитный список функций установления соединения и ввода/вывода
Бьерн Страуструп , Бьёрн Страуструп , Валерий Федорович Альмухаметов , Ирина Сергеевна Козлова
Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT