Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
В принципе достаточно много задач, где нужно клиенту... 28.03.09 06:25 Число просмотров: 2083
Автор: void <Grebnev Valery> Статус: Elderman Отредактировано 28.03.09 06:26 Количество правок: 1
|
> Хм. Интересно а в чем логика? Я то уж было ломанулся > исправлять явно лишнее индексирование :-)
В принципе достаточно много задач, где нужно клиенту отдавать индекс, а не адрес. В той задаче, для которой это сейчас делается - для храния имеетсятолько WORD. Получив новый объект из пула, клиент будет проводить типа CAS над этим индексом, чтобы удостовериться, что использует один и тот же shared буфер, который уже захвачен другим клиентом. Типа как общий объект, буфер, и т.д для нескольких клиентов. Другого рода задачи всплывают в IPC на shared memory, когда сервер отдаёт клиенту "номер" shared канала. Можно конечно, получив ::InterlockedPopEntrySList адрес затем мапить или хеш мапить его на индекс, но это может быть не бесплатно. Хотя конечно надо тестировать.
> А вообще только что пришла идея: для каждого процессора > выделить свой лист свободных индексов.
Идея хорошая и не только для данной задачи. Надо об этом подумать ;-)
> Кроме того, нужно > придумать способ лочить очередь без захвата шины (уже в > однопроцессорном окружении), но на мой взгляд это довольно > легко.
А как? ... Саттер не так давно написал нескольно статей по этому поводу. Но я признаться не смотрел.
|
|
|