delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin-developers/2000/12/15/21:53:46

Mailing-List: contact cygwin-developers-help AT sourceware DOT cygnus DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-developers-subscribe AT sources DOT redhat DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin-developers/>
List-Post: <mailto:cygwin-developers AT sources DOT redhat DOT com>
List-Help: <mailto:cygwin-developers-help AT sources DOT redhat DOT com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-developers-owner AT sources DOT redhat DOT com
Delivered-To: mailing list cygwin-developers AT sources DOT redhat DOT com
X-Authentication-Warning: myth9.Stanford.EDU: cobbler owned process doing -bs
Date: Fri, 15 Dec 2000 18:53:31 -0800 (PST)
From: Dan Morris <cobbler AT stanford DOT edu>
Reply-To: dmorris AT tiqit DOT com
To: cygwin-developers AT cygwin DOT com
Subject: Re: Serial blocking read
In-Reply-To: <20001215210940.A12596@redhat.com>
Message-ID: <Pine.GSO.4.21.0012151851070.28122-100000@myth9.Stanford.EDU>
MIME-Version: 1.0

My bad... I totally spaced on even giving a filename.  Here's a better diff :

--- fhandler_serial.cc-orig     Fri Dec 15 18:45:26 2000
+++ fhandler_serial.cc  Fri Dec 15 00:28:04 2000
@@ -119,6 +119,13 @@ fhandler_serial::raw_read (void *ptr, si
            }
        }

+      if (overlapped_armed) {
+          if (!ClearCommError (get_handle (), &ev, &st))
+           goto err;
+         else if (st.cbInQue)
+           inq = st.cbInQue;
+      }
+
       overlapped_armed = 0;
       ResetEvent (io_status.hEvent);
       if (inq > ulen)

-Dan

On Fri, 15 Dec 2000, Christopher Faylor wrote:

> I think this is coming from fhandler_serial.cc but I don't know for
> sure.  Can you provide a unified diff?  A complete unified diff will
> show the filename and give a little more context.
> 
> The contributing link on http://cygwin.com should give you some pointers on how
> to do this and how to provide a patch.
> 
> cgf
> 
> On Fri, Dec 15, 2000 at 05:38:09PM -0800, Dan Morris wrote:
> >Has anyone else had problems with serial port reads blocking even when
> >O_NONBLOCK is passed to _read in the 1.1.6-1 DLL?
> >
> >I noticed that my reads were appropriately non-blocking most of the time, but
> >blocked whenever "overlapped_armed" was set, because in this case raw_read
> >never finds out how many bytes are in the serial port's buffer.  This patch
> >seems to fix the problem for me :
> >
> >121a122,128
> >>       if (overlapped_armed) {
> >>           if (!ClearCommError (get_handle (), &ev, &st))
> >> 	          goto err;
> >>           else if (st.cbInQue)
> >>             inq = st.cbInQue;
> >>       }
> >> 
> >
> >If anyone else has found a better solution to this problem, let me know...
> >otherwise perhaps this patch will fix things.
> >
> >-Dan
> > 
> >Dan Morris
> >http://techhouse.brown.edu/dmorris
> >
> >Tiqit Computers
> >http://www.tiqit.com
> >
> 
> -- 
> cgf AT cygnus DOT com                        Red Hat, Inc.
> http://sources.redhat.com/            http://www.redhat.com/
> 

Dan Morris
http://techhouse.brown.edu/dmorris

Tiqit Computers
http://www.tiqit.com


- Raw text -


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