Я знаю, что ошибка сломанной трубы возникает, когда сокет на стороне узла закрывается.
Но в своем тесте я заметил, что немедленный вызов send на этой стороне, когда одноранговая сторона закрыта, не всегда приводит к ошибке разрыва канала.
Например:
После закрытия сокета на стороне однорангового узла (я попытался выполнить чистое закрытие, вызвав close, а также ненормальное закрытие, убив однорангового узла), если я попытаюсь отправить 40 байт, я не получу сломанный канал, но, если я попытаюсь отправьте 40000 байт, тогда он сразу же выдает ошибку сломанной трубы.
Что именно вызывает поломку трубы и можно ли предсказать ее поведение?