NetBSD-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: ECONNRESET not returned when calling send() on a socket



On Sun, 22 Dec 2019 23:44:33 +0300
Valery Ushakov <uwe%stderr.spb.ru@localhost> wrote:

> LOL.  Sorry :) I mean, you are already using poll(2).  It literally
> cannot get *any* worse.  Literally.  The margins of this email are
> just too narrow...  Sorry again, traumatic memories...
> 
> E.g. NetBSD and Solaris never report POLLHUP for sockets.  Windows and
> OSX report POLLHUP when remote half-closes.  Linux reports it on full
> close.  NetBSD and Solaris don't report POLLERR on failed connect(2),
> just POLLOUT.  And I don't even want to think about scenarios like
> reset after half-close...
> 
Well, I don't have problems with poll(). For a small number of file
descriptors it works quite well. Yes it does get expensive when you
start using 1000s of file descriptors, but then you just use epoll(),
kqueue(), etc. Actually, kqueue() is very awkward to use and in my
opinion, is not designed very well.

> On NetBSD you always get SIGPIPE (whn not turned off), right?
If I remember correctly, on NetBSD sometimes I got ECONNRESET, sometimes
I got SIGPIPE, depending on at what time the other TCP application was
killed. On Linux I think I always got ECONNRESET.


Home | Main Index | Thread Index | Old Index