Wiem, że wyrzucany jest błąd pękniętej rury, gdy gniazdo po stronie równorzędnej jest zamknięte.
Ale w moim teście zauważyłem, że natychmiastowe wywołanie „wyślij” po tej stronie, gdy strona równorzędna jest zamknięta, nie zawsze prowadzi do błędu zerwanego przewodu.
Na przykład:
Po zamknięciu gniazda po stronie równorzędnej (próbowałem wyczyścić zamknięcie przez wywołanie close, a także nienormalne zamknięcie przez zabicie peera), jeśli spróbuję wysłać 40 bajtów, nie otrzymuję zepsutego potoku, ale jeśli spróbuję wyślij 40000 bajtów, a następnie natychmiast wyświetli błąd zepsutego potoku.
Co dokładnie powoduje pęknięcie rury i czy można przewidzieć jej zachowanie?