Document fail-fast OOM and session interruption contracts
This commit is contained in:
1 parent
f221fa5a89
commit
23d426fd0c
2 files changed
+9
-2
No files matched your search
@@ -6,6 +6,8 @@
|
||||
* Для доставки через промежуточные узлы используется etcp_router.h.
|
||||
* Все вызовы — в потоке uasync. Перед отправкой ждать UP и свободной send_input_q.
|
||||
* Владение entry различается: send забирает его только при успехе, recv — всегда.
|
||||
* Принятие send и транспортный ACK не гарантируют завершение операции сервиса через REINIT/DELETE:
|
||||
* сброс отбрасывает старый поток, владелец завершает/повторяет свои неподтверждённые операции.
|
||||
*/
|
||||
|
||||
#ifndef ETCP_API_H
|
||||
|
||||
@@ -2,7 +2,11 @@
|
||||
* input принимает целые кодограммы, packer добавляет длину и делит поток под MTU;
|
||||
* unpacker читает etcp->output_queue и выдаёт целые кодограммы в output/etcp_int_recv.
|
||||
* Содержимое cmd сервисов непрозрачно для normalizer. Контекст принадлежит ETCP_CONN,
|
||||
* владеет своими очередями/частичными буферами/ожиданием backpressure; все вызовы — uasync. */
|
||||
* владеет своими очередями/частичными буферами/ожиданием backpressure; все вызовы — uasync.
|
||||
* OOM после принятия данных аварийно сбрасывает всю ETCP-сессию, сохраняя физические линки.
|
||||
* Старые данные не повторяются: владельцы после REINIT восстанавливают операции своего протокола.
|
||||
* RX до сохранения в ETCP.recv_q может быть отброшен без ACK для обычного ретрансмита.
|
||||
* Обработчики прекращают старый разбор после reset/close из callback; дополнительные OOM-очереди/таймеры не используются. */
|
||||
#ifndef PKT_NORMALIZER_H
|
||||
#define PKT_NORMALIZER_H
|
||||
|
||||
@@ -62,7 +66,8 @@ struct PKTNORM* pn_init(struct ETCP_CONN* etcp);// все что нужно (в
|
||||
// Деинициализация пары
|
||||
void pn_deinit(struct PKTNORM* pn);
|
||||
|
||||
// Сброс состояния (для переподключения)
|
||||
// Отбросить обе очереди/частичные буферы, отменить flush и waiter без выделений памяти. NULL допустим.
|
||||
// Вызывается владельцем при сбросе ETCP-потока; не запускает согласование эпох и не воспроизводит данные.
|
||||
void pn_reset(struct PKTNORM* pn);
|
||||
|
||||
// Сброс состояния unpacker (для unpacker)
|
||||
|
||||
Reference in new issue
Block a user