delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2000/12/11/15:29:05

Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT sources DOT redhat DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT sources DOT redhat DOT com>
List-Help: <mailto:cygwin-help AT sources DOT redhat DOT com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-owner AT sources DOT redhat DOT com
Delivered-To: mailing list cygwin AT sources DOT redhat DOT com
From: Corinna Vinschen <cygwin AT cygwin DOT com>
Date: Mon, 11 Dec 2000 21:28:03 +0100
X-Mailer: KMail [version 1.1.99]
To: cygwin AT cygwin DOT com
References: <1529f1887b DOT 1887b1529f AT uth DOT tmc DOT edu> <14900 DOT 63927 DOT 152000 DOT 146634 AT gargle DOT gargle DOT HOWL> <00121120152002 DOT 00475 AT cygbert>
In-Reply-To: <00121120152002.00475@cygbert>
Subject: Re: socket read()/write() problem in 1.1.6 [solved]
MIME-Version: 1.0
Message-Id: <00121121280303.00475@cygbert>
X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id PAA01325

On Monday 11 December 2000 20:15, Corinna Vinschen wrote:
> closesocket() behaves different dependent on the SO_LINGER option
> set. The default behaviour of SO_DONTLINGER which results in a
> immediate return while the connection is gracefully shutdown
> in the background.
>
> The new Cygwin socket code doesn't use standard handle duplication
> on socket inheritance between processes but the special Winsock2
> functions WSADuplicateSocket() and WSASocket().
>
> When calling closesocket() on duplicated sockets using the above
> Winsock2 method, closesocket() seems to act as if SO_LINGER with
> zero time-out is enabled which results in closesocket() returning
> immediately while forcing an immediate termination of the
> connection.
>
> That behaviour is not documented in the MSDN, AFAICS.

Sorry, folks. I have discovered the above description to be somewhat
rash. Further intensiv testing lead to the result that it's in fact
only a timing difference between using Winsock 1.1 and Winsock 2.0
sockets. You can reproduce the connection reset failure even with the
old implementation. It's far less frequently, though. 

> I tried various workarounds but the only reliable way seems to
> be to perform a graceful shutdown in the application.

At least this remains true.

Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Developer                                mailto:cygwin AT cygwin DOT com
Red Hat, Inc.

--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019