| Предыдущий | Следующий |
| STATUS_RING_NEWLY_EMPTY | STATUS_OPLOCK_SWITCHED_TO_NEW_HANDLE |
STATUS_RING_SIGNAL_OPPOSITE_ENDPOINT
Что означает STATUS_RING_SIGNAL_OPPOSITE_ENDPOINT
STATUS_RING_SIGNAL_OPPOSITE_ENDPOINT — указанный кольцевой буфер ранее был пуст или заполнен; вызывающая сторона должна подать сигнал противоположной конечной точке.
Что проверить
- Определите кольцевой буфер и его сторону, которая выполнила операцию и изменила состояние с пустого на непустое либо с полного на неполное.
- Проверьте, действительно ли переход состояния требует уведомить противоположную сторону и не теряется ли сигнал между производителем и потребителем.
- При гонке сохраните индексы чтения и записи и порядок операций памяти вокруг перехода; сам статус описывает необходимость сигнализации, а не сетевой адрес.
Что делать
Передайте уведомление противоположной стороне кольцевого буфера в соответствии с контрактом очереди и продолжите обработку; не диагностируйте этот статус как сетевую ошибку.
Практический смысл и диагностика
- Операция с ring buffer требует уведомить противоположный endpoint.
- Пример такой signaling model — VMBus/SynIC в Linux kernel.
- Этот information status необычен тем, что описывает следующее действие caller, а не failure.
- Сначала опубликуйте изменения shared ring state, затем сигнализируйте opposite endpoint.
- VMBus — документированный пример channel с двумя shared-memory ring buffers и противоположным endpoint.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.