Guess I know the answer: https://cloudup.com/cCkjLhI4M2r Basically, OSX is checking `kn_data` and FreeBSD is using `so->so_rcv.sb_cc`. Thank you anyway! On Sat, Aug 2, 2014 at 1:39 PM, Fedor Indutny <fedor_at_indutny.com> wrote: > Hello! > > I'm trying to figure out, why this code: > > https://github.com/indutny/0-udp > > Which basically sends a 0-length UDP packet to a server and polls > kqueue events on the server fd. > > Return 1 kevent on FreeBSD, and blocks indefinitely without > returning any events on OSX. > > So far I could see that FreeBSD and OSX are treating NOTE_LOWAT > differently: > > * > https://github.com/opensource-apple/xnu/blob/2fa84067f6cdeb23267f877ca4fd26201316da1b/bsd/kern/uipc_socket.c#L4461 > * > https://github.com/freebsd/freebsd/blob/6901832d8588537c81afbdb91d1a22deb5582c47/sys/kern/uipc_socket.c#L3163-L3164 > > FreeBSD's NOTE_LOWAT is overriding SO_RCVLOWAT, and OSX is using > SO_RVCLOWAT as a minimum value. But, since NOTE_LOWAT is not > involved here by default, I'm failing to see where exactly this > event could pass through kqueue filter. > > Could anyone with UDP and/or KQueue implementation knowledge > share some insights with me? > > Thank you very much! > Fedor. > > (NOTE: Duplicate, first email wasn't posted, because I wasn't subscribed > to the ML) >Received on Sat Aug 02 2014 - 08:41:48 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:51 UTC