> >> [snip]
> >>
> >>>> I tried SOCK_STREAM (and SOCK_SEQPACKET I think) for CYGWIN 3.2.0
> >>>> but that didn't work at all
> >>>>
> >>>> As far as I understand, both all types on pretty much all
> >>>> implementations preserves message ordering though
> >>>>
> >>>> I haven't tried SOCK_STREAM and/or SOCK_SEQPACKET with the
> >>> topic/af_unix-branch. Is that worth a try ?
> >>>
> >>> SOCK_STREAM is definitely worth a try.  The implementation of that
> >>> should be much more reliable than the implementation of SOCK_DGRAM
> >>> at the moment.  We don't implement SOCK_SEQPACKET.
> >>
> >> It might be a complete rewrite of our semantics though, because it's
> >> connection based and allows just one writer on each "channel" and
> >> messages
> >> (chunks) cannot be handled "atomically"
> >
> > In that case, let's try to get the DGRAM case to work.
> 
> I decided to (finally) dig into the AF_UNIX implementation on the master
> branch and try to understand why DGRAM sockets are unreliable.  I think the
> answer is simply that Cygwin implements AF_UNIX sockets using Windows
> AF_INET sockets, and DGRAM sockets in this setting are documented to be
> unreliable.  It appears that if too much is written without anything being 
> read,
> the Windows WSASendTo function simply drops messages without giving any
> error.

Yeah, that was my amateur analysis as well a while ago

> Unfortunately, switching to native Windows AF_UNIX sockets wouldn't help,
> because they don't support DGRAM sockets. 

That's a bummer ☹

> I'm going to follow up on cygwin-developers.

Great, I'll read about it there

Keep up the good work

Best regards,
Kristian

> Ken


-- 
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

Reply via email to