public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
* Problem using select() with com0com virtual serial ports
@ 2009-01-22 15:44 Paul Ingemi
  2009-01-22 16:24 ` Christopher Faylor
  0 siblings, 1 reply; 6+ messages in thread
From: Paul Ingemi @ 2009-01-22 15:44 UTC (permalink / raw)
  To: cygwin

[-- Attachment #1: Type: text/plain, Size: 1665 bytes --]

I'm using Cygwin with com0com, and I find that every other time I read
a character from the virtual serial port, select() continues to
believe the serial port is ready, but then read() will block until a
character actually comes in. This does not happen with a real serial
port.

Attached below is a test program which exhibits the symptoms when used
with com0com virtual serial ports.

I worked around the problem by performing a second select()
immediately after the first one returns with ready file descriptors.
That second select determines which of these really are ready.

Using strace and the source code for Cygwin, I worked with the author
of com0com, Vyacheslav Frolov, to find a potential problem and
solution. That thread is here:

http://sourceforge.net/forum/forum.php?thread_id=2885701&forum_id=440108

Vyacheslav suggests that initially peek_serial() returns because
st.cbInQue is nonzero. However, since we didn't wait for a comm event,
EV_RXCHAR is still set on the comm handle. The next time into
select(), st.cbInQue is zero but WaitCommEvent succeeds immediately
due to the previously set event.

By clearing the comm event mask (and therefore the comm event) before
setting it to EV_RXCHAR:

select.cc function peek_serial():
  ...
  SetCommMask (h, 0);          // <=== added
  SetCommMask (h, EV_RXCHAR);
  ...

we were able to build a custom cygwin1.dll that eliminates the
problem. I'm not a Win32 coder so I'm not comfortable submitting this
as a patch, but hopefully someone with the big picture view of how
this is supposed to work can take a look.

(I've redacted the cygcheck output because of the data it reveals
about my employer)

[-- Attachment #2: testcomm.c --]
[-- Type: text/plain, Size: 1361 bytes --]

#include <stdio.h>
#include <stdbool.h>
#include <termios.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/time.h>

void setup_port(int fd) {
    struct termios options;
    fcntl(fd, F_SETFL, 0);
    tcgetattr(fd, &options);
    cfsetispeed(&options, B9600);
    cfsetospeed(&options, B9600);
    options.c_cflag |= (CLOCAL | CREAD);
    tcsetattr(fd, TCSANOW, &options);
}

int main(int argc, char *argv[]) {
    int port;
    if( argc != 2 ) { 
        printf("%s commport\n", argv[0]); 
        return -1;
    }
    port = open(argv[1], O_RDWR | O_NOCTTY | O_NONBLOCK);
    if(port < 0) {
        printf("Port could not be opened.\n");
        return -3;
    }
    setup_port(port);
    
    write(port, "hi", 2);
    while(1) {
        fd_set monitored_files;
        struct timeval timeout;
        
        FD_ZERO(     &monitored_files);
        FD_SET(port, &monitored_files);
        timeout.tv_sec = 0;
        timeout.tv_usec = 290;
        //printf("Waiting\n");
        if( select(port+1, &monitored_files, NULL, NULL, &timeout) <= 0 ) {
            continue;
        }
        printf("Got something 1!\n");
        if( FD_ISSET(port, &monitored_files) ) {
            unsigned char inch;
            printf("Performing read.\n");
            read(port, &inch, 1);
            printf("Got %02x\n", inch);
        }
    }
    close(port);
}

[-- Attachment #3: cygcheck.redacted.out --]
[-- Type: application/octet-stream, Size: 31958 bytes --]


Cygwin Configuration Diagnostics
Current System Time: Wed Jan 21 13:37:52 2009

Windows XP Professional Ver 5.1 Build 2600 Service Pack 2

MAKE_MODE = 'unix'

MANPATH = '/usr/local/man:/usr/share/man:/usr/man::/usr/ssl/man'
TERM = 'cygwin'
PROCESSOR_IDENTIFIER = 'x86 Family 15 Model 4 Stepping 10, GenuineIntel'
WINDIR = 'C:\WINDOWS'
CVSROOT = ':pserver:anoncvs@cygwin.com:/cvs/src'
OS = 'Windows_NT'
ALLUSERSPROFILE = 'C:\Documents and Settings\All Users'
!:: = '::\'
COMMONPROGRAMFILES = 'C:\Program Files\Common Files'
JAVA_PATH = 'C:\Program Files\Java\jdk1.5.0_07\bin'
PROCESSOR_LEVEL = '15'
FP_NO_HOST_CHECK = 'NO'
SYSTEMDRIVE = 'C:'
JAVA_HOME = 'C:\Program Files\Java\jdk1.5.0_07\'
PS1 = '\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n\$ '
PROCESSOR_ARCHITECTURE = 'x86'
!C: = 'C:\cygwin\bin'
SHLVL = '1'
HOMEDRIVE = 'C:'
PROMPT = '$P$G'
COMSPEC = 'C:\WINDOWS\system32\cmd.exe'
SYSTEMROOT = 'C:\WINDOWS'
CVS_RSH = '/bin/ssh'
INFOPATH = '/usr/local/info:/usr/share/info:/usr/info:'
PROGRAMFILES = 'C:\Program Files'
NUMBER_OF_PROCESSORS = '1'
SESSIONNAME = 'Console'
_ = '/usr/bin/cygcheck'

HKEY_CURRENT_USER\Software\Cygnus Solutions
HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin
HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\mounts v2
HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\Program Options
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2
  (default) = '/cygdrive'
  cygdrive flags = 0x00000022
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/
  (default) = 'C:\cygwin'
  flags = 0x0000000a
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/usr/bin
  (default) = 'C:\cygwin/bin'
  flags = 0x0000000a
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/usr/lib
  (default) = 'C:\cygwin/lib'
  flags = 0x0000000a
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\Program Options

C:\cygwin      /          system  binmode
C:\cygwin/bin  /usr/bin   system  binmode
C:\cygwin/lib  /usr/lib   system  binmode
.              /cygdrive  system  binmode,cygdrive

Found: C:\cygwin\bin\awk.exe
Found: C:\cygwin\bin\bash.exe
Found: C:\cygwin\bin\cat.exe
Found: C:\cygwin\bin\cp.exe
Found: C:\cygwin\bin\cpp.exe
Not Found: crontab
Found: C:\cygwin\bin\find.exe
Found: C:\cygwin\bin\gcc.exe
Found: C:\cygwin\bin\gdb.exe
Found: C:\cygwin\bin\grep.exe
Found: C:\cygwin\bin\kill.exe
Found: C:\cygwin\bin\ld.exe
Found: C:\cygwin\bin\ls.exe
Found: C:\cygwin\bin\make.exe
Found: C:\cygwin\bin\mv.exe
Found: C:\cygwin\bin\patch.exe
Found: C:\cygwin\bin\perl.exe
Found: C:\cygwin\bin\rm.exe
Found: C:\cygwin\bin\sed.exe
Not Found: ssh
Found: C:\cygwin\bin\sh.exe
Found: C:\cygwin\bin\tar.exe
Found: C:\cygwin\bin\test.exe
Not Found: vi
Found: C:\cygwin\bin\vim.exe

  107k 2009/01/18 C:\cygwin\bin\cygapr-1-0.dll - os=4.0 img=1.0 sys=4.0
                  "cygapr-1-0.dll" v0.0 ts=2009/1/18 14:12
   89k 2008/09/01 C:\cygwin\bin\cygaprutil-1-0.dll - os=4.0 img=1.0 sys=4.0
                  "cygaprutil-1-0.dll" v0.0 ts=2008/9/1 3:48
   87k 2006/02/16 C:\cygwin\bin\cygatk-1.0-0.dll - os=4.0 img=1.0 sys=4.0
                  "cygatk-1.0-0.dll" v0.0 ts=2006/2/6 16:13
   61k 2008/04/01 C:\cygwin\bin\cygbz2-1.dll - os=4.0 img=1.0 sys=4.0
                  "cygbz2-1.dll" v0.0 ts=2008/3/31 23:37
    7k 2008/11/10 C:\cygwin\bin\cygcharset-1.dll - os=4.0 img=1.0 sys=4.0
                  "cygcharset-1.dll" v0.0 ts=2008/11/9 19:34
   16k 2005/10/11 C:\cygwin\bin\cygcompface-0.dll - os=4.0 img=1.0 sys=4.0
                  "cygcompface-0.dll" v0.0 ts=2005/10/11 9:58
    7k 2003/10/19 C:\cygwin\bin\cygcrypt-0.dll - os=4.0 img=1.0 sys=4.0
                  "cygcrypt-0.dll" v0.0 ts=2003/10/19 3:57
 1125k 2006/10/04 C:\cygwin\bin\cygcrypto-0.9.7.dll - os=4.0 img=1.0 sys=4.0
                  "cygcrypto-0.9.7.dll" v0.0 ts=2006/10/4 8:12
 1074k 2009/01/08 C:\cygwin\bin\cygcrypto-0.9.8.dll - os=4.0 img=1.0 sys=4.0
                  "cygcrypto-0.9.8.dll" v0.0 ts=2009/1/8 5:03
  221k 2007/06/30 C:\cygwin\bin\cygcurl-4.dll - os=4.0 img=1.0 sys=4.0
                  "cygcurl-4.dll" v0.0 ts=2007/6/29 20:54
  647k 2007/12/17 C:\cygwin\bin\cygdb-4.1.dll - os=4.0 img=1.0 sys=4.0
                  "cygdb-4.1.dll" v0.0 ts=2007/12/16 13:35
  703k 2007/12/17 C:\cygwin\bin\cygdb-4.2.dll - os=4.0 img=1.0 sys=4.0
                  "cygdb-4.2.dll" v0.0 ts=2007/12/17 6:58
  764k 2007/12/17 C:\cygwin\bin\cygdb-4.3.dll - os=4.0 img=1.0 sys=4.0
                  "cygdb-4.3.dll" v0.0 ts=2007/12/17 7:29
  943k 2007/12/17 C:\cygwin\bin\cygdb-4.5.dll - os=4.0 img=1.0 sys=4.0
                  "cygdb-4.5.dll" v0.0 ts=2007/12/17 8:12
  967k 2007/12/17 C:\cygwin\bin\cygdb_cxx-4.1.dll - os=4.0 img=1.0 sys=4.0
                  "cygdb_cxx-4.1.dll" v0.0 ts=2007/12/16 13:35
 1036k 2007/12/17 C:\cygwin\bin\cygdb_cxx-4.2.dll - os=4.0 img=1.0 sys=4.0
                  "cygdb_cxx-4.2.dll" v0.0 ts=2007/12/17 6:58
 1106k 2007/12/17 C:\cygwin\bin\cygdb_cxx-4.3.dll - os=4.0 img=1.0 sys=4.0
                  "cygdb_cxx-4.3.dll" v0.0 ts=2007/12/17 7:29
 1296k 2007/12/17 C:\cygwin\bin\cygdb_cxx-4.5.dll - os=4.0 img=1.0 sys=4.0
                  "cygdb_cxx-4.5.dll" v0.0 ts=2007/12/17 8:12
   46k 2009/01/07 C:\cygwin\bin\cygecpg.dll - os=4.0 img=1.0 sys=4.0
                  "cygecpg.dll" v0.0 ts=2009/1/7 11:46
  118k 2007/04/06 C:\cygwin\bin\cygexpat-0.dll - os=4.0 img=1.0 sys=4.0
                  "cygexpat-0.dll" v0.0 ts=2007/4/6 16:43
  118k 2008/05/09 C:\cygwin\bin\cygexpat-1.dll - os=4.0 img=1.0 sys=4.0
                  "cygexpat-1.dll" v0.0 ts=2008/5/9 0:03
  161k 2008/06/01 C:\cygwin\bin\cygfontconfig-1.dll - os=4.0 img=1.0 sys=4.0
                  "cygfontconfig-1.dll" v0.0 ts=2008/6/1 18:16
   19k 2008/10/26 C:\cygwin\bin\cygfontenc-1.dll - os=4.0 img=1.0 sys=4.0
                  "cygfontenc-1.dll" v0.0 ts=2008/10/26 17:25
   40k 2006/11/15 C:\cygwin\bin\cygform-8.dll - os=4.0 img=1.0 sys=4.0
                  "cygform-8.dll" v0.0 ts=2006/11/15 2:06
   45k 2001/04/25 C:\cygwin\bin\cygform5.dll - os=4.0 img=1.0 sys=4.0
                  "cygform5.dll" v0.0 ts=2001/4/25 1:28
   35k 2002/01/09 C:\cygwin\bin\cygform6.dll - os=4.0 img=1.0 sys=4.0
                  "cygform6.dll" v0.0 ts=2002/1/9 1:03
   48k 2003/08/09 C:\cygwin\bin\cygform7.dll - os=4.0 img=1.0 sys=4.0
                  "cygform7.dll" v0.0 ts=2003/8/9 5:25
  426k 2008/06/29 C:\cygwin\bin\cygfreetype-6.dll - os=4.0 img=1.0 sys=4.0
                  "cygfreetype-6.dll" v0.0 ts=2008/6/29 13:56
  414k 2008/06/16 C:\cygwin\bin\cyggcrypt-11.dll - os=4.0 img=1.0 sys=4.0
                  "cyggcrypt-11.dll" v0.0 ts=2008/6/16 17:13
   28k 2003/07/20 C:\cygwin\bin\cyggdbm-3.dll - os=4.0 img=1.0 sys=4.0
                  "cyggdbm-3.dll" v0.0 ts=2003/7/20 3:58
   19k 2006/11/19 C:\cygwin\bin\cyggdbm-4.dll - os=4.0 img=1.0 sys=4.0
                  "cyggdbm-4.dll" v0.0 ts=2006/11/19 3:18
   19k 2003/03/22 C:\cygwin\bin\cyggdbm.dll - os=4.0 img=1.0 sys=4.0
                  "cyggdbm.dll" v0.0 ts=2002/2/19 22:05
   15k 2003/07/20 C:\cygwin\bin\cyggdbm_compat-3.dll - os=4.0 img=1.0 sys=4.0
                  "cyggdbm_compat-3.dll" v0.0 ts=2003/7/20 4:00
    8k 2006/11/19 C:\cygwin\bin\cyggdbm_compat-4.dll - os=4.0 img=1.0 sys=4.0
                  "cyggdbm_compat-4.dll" v0.0 ts=2006/11/19 3:18
  451k 2005/12/27 C:\cygwin\bin\cyggdk-x11-2.0-0.dll - os=4.0 img=1.0 sys=4.0
                  "cyggdk-x11-2.0-0.dll" v0.0 ts=2005/12/26 6:20
   77k 2005/12/27 C:\cygwin\bin\cyggdk_pixbuf-2.0-0.dll - os=4.0 img=1.0 sys=4.0
                  "cyggdk_pixbuf-2.0-0.dll" v0.0 ts=2005/12/26 6:11
   54k 2005/12/27 C:\cygwin\bin\cyggdk_pixbuf_xlib-2.0-0.dll - os=4.0 img=1.0 sys=4.0
                  "cyggdk_pixbuf_xlib-2.0-0.dll" v0.0 ts=2005/12/26 7:03
 2297k 2008/10/29 C:\cygwin\bin\cygGL-1.dll - os=4.0 img=1.0 sys=4.0
                  "cygGL-1.dll" v0.0 ts=2008/10/29 1:13
   81k 2005/08/18 C:\cygwin\bin\cygglade-2.0-0.dll - os=4.0 img=1.0 sys=4.0
                  "cygglade-2.0-0.dll" v0.0 ts=2005/8/18 14:51
  515k 2006/06/06 C:\cygwin\bin\cygglib-2.0-0.dll - os=4.0 img=1.0 sys=4.0
                  "cygglib-2.0-0.dll" v0.0 ts=2006/6/5 18:32
   10k 2006/06/06 C:\cygwin\bin\cyggmodule-2.0-0.dll - os=4.0 img=1.0 sys=4.0
                  "cyggmodule-2.0-0.dll" v0.0 ts=2006/6/5 18:36
  219k 2008/10/04 C:\cygwin\bin\cyggmp-3.dll - os=4.0 img=1.0 sys=4.0
                  "cyggmp-3.dll" v0.0 ts=2008/10/4 19:48
  288k 2008/10/04 C:\cygwin\bin\cyggmpxx-3.dll - os=4.0 img=1.0 sys=4.0
                  "cyggmpxx-3.dll" v0.0 ts=2008/10/4 19:48
  222k 2006/06/06 C:\cygwin\bin\cyggobject-2.0-0.dll - os=4.0 img=1.0 sys=4.0
                  "cyggobject-2.0-0.dll" v0.0 ts=2006/6/5 18:35
   13k 2008/03/08 C:\cygwin\bin\cyggpg-error-0.dll - os=4.0 img=1.0 sys=4.0
                  "cyggpg-error-0.dll" v0.0 ts=2008/3/8 18:18
   14k 2006/06/06 C:\cygwin\bin\cyggthread-2.0-0.dll - os=4.0 img=1.0 sys=4.0
                  "cyggthread-2.0-0.dll" v0.0 ts=2006/6/5 18:36
 2764k 2005/12/27 C:\cygwin\bin\cyggtk-x11-2.0-0.dll - os=4.0 img=1.0 sys=4.0
                  "cyggtk-x11-2.0-0.dll" v0.0 ts=2005/12/26 6:43
  528k 2005/10/09 C:\cygwin\bin\cygguile-12.dll - os=4.0 img=1.0 sys=4.0
                  "cygguile-12.dll" v0.0 ts=2005/10/9 9:25
  659k 2005/10/08 C:\cygwin\bin\cygguile-16.dll - os=4.0 img=1.0 sys=4.0
                  "cygguile-16.dll" v0.0 ts=2005/10/6 17:15
   18k 2005/10/09 C:\cygwin\bin\cygguile-ltdl-1.dll - os=4.0 img=1.0 sys=4.0
                  "cygguile-ltdl-1.dll" v0.0 ts=2005/10/9 9:24
   68k 2005/10/09 C:\cygwin\bin\cygguile-srfi-srfi-13-14-v-1-1.dll - os=4.0 img=1.0 sys=4.0
                  "cygguile-srfi-srfi-13-14-v-1-1.dll" v0.0 ts=2005/10/9 9:25
    4k 2005/10/08 C:\cygwin\bin\cygguile-srfi-srfi-13-14-v-2-2.dll - os=4.0 img=1.0 sys=4.0
                  "cygguile-srfi-srfi-13-14-v-2-2.dll" v0.0 ts=2005/10/8 3:52
   31k 2005/10/09 C:\cygwin\bin\cygguile-srfi-srfi-4-v-1-1.dll - os=4.0 img=1.0 sys=4.0
                  "cygguile-srfi-srfi-4-v-1-1.dll" v0.0 ts=2005/10/9 9:25
    4k 2005/10/08 C:\cygwin\bin\cygguile-srfi-srfi-4-v-2-2.dll - os=4.0 img=1.0 sys=4.0
                  "cygguile-srfi-srfi-4-v-2-2.dll" v0.0 ts=2005/10/8 3:52
    8k 2005/10/08 C:\cygwin\bin\cygguile-srfi-srfi-60-v-1-1.dll - os=4.0 img=1.0 sys=4.0
                  "cygguile-srfi-srfi-60-v-1-1.dll" v0.0 ts=2005/10/6 17:15
   12k 2005/10/09 C:\cygwin\bin\cygguilereadline-v-12-12.dll - os=4.0 img=1.0 sys=4.0
                  "cygguilereadline-v-12-12.dll" v0.0 ts=2005/10/9 9:25
   11k 2005/10/08 C:\cygwin\bin\cygguilereadline-v-16-16.dll - os=4.0 img=1.0 sys=4.0
                  "cygguilereadline-v-16-16.dll" v0.0 ts=2005/10/6 17:15
   17k 2001/06/28 C:\cygwin\bin\cyghistory4.dll - os=4.0 img=1.0 sys=4.0
                  "cyghistory4.dll" v0.0 ts=2001/1/6 23:34
   29k 2003/08/10 C:\cygwin\bin\cyghistory5.dll - os=4.0 img=1.0 sys=4.0
                  "cyghistory5.dll" v0.0 ts=2003/8/10 19:16
   24k 2008/11/29 C:\cygwin\bin\cyghistory6.dll - os=4.0 img=1.0 sys=4.0
                  "cyghistory6.dll" v0.0 ts=2008/11/29 9:30
   72k 2008/10/26 C:\cygwin\bin\cygICE-6.dll - os=4.0 img=1.0 sys=4.0
                  "cygICE-6.dll" v0.0 ts=2008/10/25 21:55
  271k 2007/08/24 C:\cygwin\bin\cygicons-0.dll - os=4.0 img=1.0 sys=4.0
                  "cygicons-0.dll" v0.0 ts=2007/8/24 3:24
  978k 2008/11/10 C:\cygwin\bin\cygiconv-2.dll - os=4.0 img=1.0 sys=4.0
                  "cygiconv-2.dll" v0.0 ts=2008/11/9 19:35
   22k 2001/12/13 C:\cygwin\bin\cygintl-1.dll - os=4.0 img=1.0 sys=4.0
                  "cygintl-1.dll" v0.0 ts=2001/12/13 4:28
   37k 2003/08/10 C:\cygwin\bin\cygintl-2.dll - os=4.0 img=1.0 sys=4.0
                  "cygintl-2.dll" v0.0 ts=2003/8/10 17:50
   31k 2005/11/20 C:\cygwin\bin\cygintl-3.dll - os=4.0 img=1.0 sys=4.0
                  "cygintl-3.dll" v0.0 ts=2005/11/19 21:04
   31k 2008/12/31 C:\cygwin\bin\cygintl-8.dll - os=4.0 img=1.0 sys=4.0
                  "cygintl-8.dll" v0.0 ts=2008/12/31 2:42
   21k 2001/06/20 C:\cygwin\bin\cygintl.dll - os=4.0 img=1.0 sys=4.0
                  "cygintl.dll" v0.0 ts=2001/6/20 13:09
  124k 2006/11/09 C:\cygwin\bin\cygjpeg-62.dll - os=4.0 img=1.0 sys=4.0
                  "cygjpeg-62.dll" v0.0 ts=2006/11/9 4:02
   41k 2005/08/29 C:\cygwin\bin\cyglber-2-2-7.dll - os=4.0 img=1.0 sys=4.0
                  "cyglber-2-2-7.dll" v0.0 ts=2005/8/14 13:48
   39k 2008/09/07 C:\cygwin\bin\cyglber-2-3-0.dll - os=4.0 img=1.0 sys=4.0
                  "cyglber-2-3-0.dll" v0.0 ts=2008/9/7 8:28
  176k 2005/08/29 C:\cygwin\bin\cygldap-2-2-7.dll - os=4.0 img=1.0 sys=4.0
                  "cygldap-2-2-7.dll" v0.0 ts=2005/8/29 7:14
  189k 2008/09/07 C:\cygwin\bin\cygldap-2-3-0.dll - os=4.0 img=1.0 sys=4.0
                  "cygldap-2-3-0.dll" v0.0 ts=2008/9/7 8:29
  188k 2005/08/29 C:\cygwin\bin\cygldap_r-2-2-7.dll - os=4.0 img=1.0 sys=4.0
                  "cygldap_r-2-2-7.dll" v0.0 ts=2005/8/29 7:14
  201k 2008/09/07 C:\cygwin\bin\cygldap_r-2-3-0.dll - os=4.0 img=1.0 sys=4.0
                  "cygldap_r-2-3-0.dll" v0.0 ts=2008/9/7 8:31
   83k 2007/06/06 C:\cygwin\bin\cygmagic-1.dll - os=4.0 img=1.0 sys=4.0
                  "cygmagic-1.dll" v0.0 ts=2007/6/6 6:41
   21k 2006/11/15 C:\cygwin\bin\cygmenu-8.dll - os=4.0 img=1.0 sys=4.0
                  "cygmenu-8.dll" v0.0 ts=2006/11/15 2:05
   26k 2001/04/25 C:\cygwin\bin\cygmenu5.dll - os=4.0 img=1.0 sys=4.0
                  "cygmenu5.dll" v0.0 ts=2001/4/25 1:27
   20k 2002/01/09 C:\cygwin\bin\cygmenu6.dll - os=4.0 img=1.0 sys=4.0
                  "cygmenu6.dll" v0.0 ts=2002/1/9 1:03
   29k 2003/08/09 C:\cygwin\bin\cygmenu7.dll - os=4.0 img=1.0 sys=4.0
                  "cygmenu7.dll" v0.0 ts=2003/8/9 5:25
   24k 2008/10/30 C:\cygwin\bin\cygminires.dll - os=4.0 img=1.2 sys=4.0
                  "cygminires.dll" v0.0 ts=2008/10/30 19:53
  121k 2008/10/04 C:\cygwin\bin\cygmp-3.dll - os=4.0 img=1.0 sys=4.0
                  "cygmp-3.dll" v0.0 ts=2008/10/4 19:48
   67k 2006/11/15 C:\cygwin\bin\cygncurses++-8.dll - os=4.0 img=1.0 sys=4.0
                  "cygncurses++-8.dll" v0.0 ts=2006/11/15 2:13
  156k 2001/04/25 C:\cygwin\bin\cygncurses++5.dll - os=4.0 img=1.0 sys=4.0
                  "cygncurses++5.dll" v0.0 ts=2001/4/25 1:29
  175k 2002/01/09 C:\cygwin\bin\cygncurses++6.dll - os=4.0 img=1.0 sys=4.0
                  "cygncurses++6.dll" v0.0 ts=2002/1/9 1:03
  237k 2006/11/15 C:\cygwin\bin\cygncurses-8.dll - os=4.0 img=1.0 sys=4.0
                  "cygncurses-8.dll" v0.0 ts=2006/11/15 2:02
  226k 2001/04/25 C:\cygwin\bin\cygncurses5.dll - os=4.0 img=1.0 sys=4.0
                  "cygncurses5.dll" v0.0 ts=2001/4/25 1:17
  202k 2002/01/09 C:\cygwin\bin\cygncurses6.dll - os=4.0 img=1.0 sys=4.0
                  "cygncurses6.dll" v0.0 ts=2002/1/9 1:03
  224k 2003/08/09 C:\cygwin\bin\cygncurses7.dll - os=4.0 img=1.0 sys=4.0
                  "cygncurses7.dll" v0.0 ts=2003/8/9 5:24
   97k 2007/09/16 C:\cygwin\bin\cygneon-26.dll - os=4.0 img=1.0 sys=4.0
                  "cygneon-26.dll" v0.0 ts=2007/9/16 13:41
  103k 2008/09/07 C:\cygwin\bin\cygneon-27.dll - os=4.0 img=1.0 sys=4.0
                  "cygneon-27.dll" v0.0 ts=2008/8/28 7:10
   12k 2006/11/15 C:\cygwin\bin\cygpanel-8.dll - os=4.0 img=1.0 sys=4.0
                  "cygpanel-8.dll" v0.0 ts=2006/11/15 2:04
   15k 2001/04/25 C:\cygwin\bin\cygpanel5.dll - os=4.0 img=1.0 sys=4.0
                  "cygpanel5.dll" v0.0 ts=2001/4/25 1:27
   12k 2002/01/09 C:\cygwin\bin\cygpanel6.dll - os=4.0 img=1.0 sys=4.0
                  "cygpanel6.dll" v0.0 ts=2002/1/9 1:03
   19k 2003/08/09 C:\cygwin\bin\cygpanel7.dll - os=4.0 img=1.0 sys=4.0
                  "cygpanel7.dll" v0.0 ts=2003/8/9 5:24
  198k 2005/07/18 C:\cygwin\bin\cygpango-1.0-0.dll - os=4.0 img=1.0 sys=4.0
                  "cygpango-1.0-0.dll" v0.0 ts=2005/7/18 7:26
  134k 2005/07/18 C:\cygwin\bin\cygpangoft2-1.0-0.dll - os=4.0 img=1.0 sys=4.0
                  "cygpangoft2-1.0-0.dll" v0.0 ts=2005/7/18 7:28
   33k 2005/07/18 C:\cygwin\bin\cygpangowin32-1.0-0.dll - os=4.0 img=1.0 sys=4.0
                  "cygpangowin32-1.0-0.dll" v0.0 ts=2005/7/18 7:29
   36k 2005/07/18 C:\cygwin\bin\cygpangox-1.0-0.dll - os=4.0 img=1.0 sys=4.0
                  "cygpangox-1.0-0.dll" v0.0 ts=2005/7/18 7:27
   22k 2005/07/18 C:\cygwin\bin\cygpangoxft-1.0-0.dll - os=4.0 img=1.0 sys=4.0
                  "cygpangoxft-1.0-0.dll" v0.0 ts=2005/7/18 7:29
  181k 2008/09/07 C:\cygwin\bin\cygpcre-0.dll - os=4.0 img=1.0 sys=4.0
                  "cygpcre-0.dll" v0.0 ts=2008/9/6 23:36
  302k 2008/09/07 C:\cygwin\bin\cygpcrecpp-0.dll - os=4.0 img=1.0 sys=4.0
                  "cygpcrecpp-0.dll" v0.0 ts=2008/9/6 23:36
    7k 2008/09/07 C:\cygwin\bin\cygpcreposix-0.dll - os=4.0 img=1.0 sys=4.0
                  "cygpcreposix-0.dll" v0.0 ts=2008/9/6 23:36
 1543k 2008/07/03 C:\cygwin\bin\cygperl5_10.dll - os=4.0 img=1.0 sys=4.0
                  "cygperl5_10.dll" v0.0 ts=2008/6/30 12:06
   52k 2009/01/07 C:\cygwin\bin\cygpgtypes.dll - os=4.0 img=1.0 sys=4.0
                  "cygpgtypes.dll" v0.0 ts=2009/1/7 11:46
  273k 2008/10/23 C:\cygwin\bin\cygpixman-1-0.dll - os=4.0 img=1.0 sys=4.0
                  "cygpixman-1-0.dll" v0.0 ts=2008/10/23 17:25
  226k 2006/11/05 C:\cygwin\bin\cygpng12.dll - os=4.0 img=1.0 sys=4.0
                  "cygpng12.dll" v0.0 ts=2006/11/5 18:32
   22k 2002/06/09 C:\cygwin\bin\cygpopt-0.dll - os=4.0 img=1.0 sys=4.0
                  "cygpopt-0.dll" v0.0 ts=2002/6/9 1:45
  103k 2009/01/07 C:\cygwin\bin\cygpq.dll - os=4.0 img=1.0 sys=4.0
                  "cygpq.dll" v0.0 ts=2009/1/7 11:46
  108k 2001/06/28 C:\cygwin\bin\cygreadline4.dll - os=4.0 img=1.0 sys=4.0
                  "cygreadline4.dll" v0.0 ts=2001/1/6 23:34
  148k 2003/08/10 C:\cygwin\bin\cygreadline5.dll - os=4.0 img=1.0 sys=4.0
                  "cygreadline5.dll" v0.0 ts=2003/8/10 19:16
  155k 2008/11/29 C:\cygwin\bin\cygreadline6.dll - os=4.0 img=1.0 sys=4.0
                  "cygreadline6.dll" v0.0 ts=2008/11/29 9:30
  761k 2008/09/30 C:\cygwin\bin\cygruby18.dll - os=4.0 img=1.0 sys=4.0
                  "cygruby18.dll" v0.0 ts=2008/9/30 9:10
   78k 2004/10/13 C:\cygwin\bin\cygsasl2-2.dll - os=4.0 img=1.0 sys=4.0
                  "cygsasl2-2.dll" v0.0 ts=2004/10/13 18:50
   40k 2008/08/05 C:\cygwin\bin\cygserf-0-0.dll - os=4.0 img=1.0 sys=4.0
                  "cygserf-0-0.dll" v0.0 ts=2008/8/5 16:26
   26k 2008/10/26 C:\cygwin\bin\cygSM-6.dll - os=4.0 img=1.0 sys=4.0
                  "cygSM-6.dll" v0.0 ts=2008/10/25 22:02
  355k 2008/09/09 C:\cygwin\bin\cygsqlite3-0.dll - os=4.0 img=1.0 sys=4.0
                  "cygsqlite3-0.dll" v0.0 ts=2008/9/9 14:20
  118k 2007/06/27 C:\cygwin\bin\cygssh2-1.dll - os=4.0 img=1.0 sys=4.0
                  "cygssh2-1.dll" v0.0 ts=2007/6/27 1:56
  231k 2006/10/04 C:\cygwin\bin\cygssl-0.9.7.dll - os=4.0 img=1.0 sys=4.0
                  "cygssl-0.9.7.dll" v0.0 ts=2006/10/4 8:12
  232k 2009/01/08 C:\cygwin\bin\cygssl-0.9.8.dll - os=4.0 img=1.0 sys=4.0
                  "cygssl-0.9.8.dll" v0.0 ts=2009/1/8 5:03
  212k 2008/12/23 C:\cygwin\bin\cygsvn_client-1-0.dll - os=4.0 img=1.0 sys=4.0
                  "cygsvn_client-1-0.dll" v0.0 ts=2008/12/23 14:22
   34k 2008/12/23 C:\cygwin\bin\cygsvn_delta-1-0.dll - os=4.0 img=1.0 sys=4.0
                  "cygsvn_delta-1-0.dll" v0.0 ts=2008/12/23 13:55
   32k 2008/12/23 C:\cygwin\bin\cygsvn_diff-1-0.dll - os=4.0 img=1.0 sys=4.0
                  "cygsvn_diff-1-0.dll" v0.0 ts=2008/12/23 13:56
   15k 2008/12/23 C:\cygwin\bin\cygsvn_fs-1-0.dll - os=4.0 img=1.0 sys=4.0
                  "cygsvn_fs-1-0.dll" v0.0 ts=2008/12/23 14:04
  136k 2008/12/23 C:\cygwin\bin\cygsvn_fs_base-1-0.dll - os=4.0 img=1.0 sys=4.0
                  "cygsvn_fs_base-1-0.dll" v0.0 ts=2008/12/23 13:58
  106k 2008/12/23 C:\cygwin\bin\cygsvn_fs_fs-1-0.dll - os=4.0 img=1.0 sys=4.0
                  "cygsvn_fs_fs-1-0.dll" v0.0 ts=2008/12/23 13:57
    6k 2008/12/23 C:\cygwin\bin\cygsvn_fs_util-1-0.dll - os=4.0 img=1.0 sys=4.0
                  "cygsvn_fs_util-1-0.dll" v0.0 ts=2008/12/23 13:55
   26k 2008/12/23 C:\cygwin\bin\cygsvn_ra-1-0.dll - os=4.0 img=1.0 sys=4.0
                  "cygsvn_ra-1-0.dll" v0.0 ts=2008/12/23 14:11
   22k 2008/12/23 C:\cygwin\bin\cygsvn_ra_local-1-0.dll - os=4.0 img=1.0 sys=4.0
                  "cygsvn_ra_local-1-0.dll" v0.0 ts=2008/12/23 14:06
  111k 2008/12/23 C:\cygwin\bin\cygsvn_ra_neon-1-0.dll - os=4.0 img=1.0 sys=4.0
                  "cygsvn_ra_neon-1-0.dll" v0.0 ts=2008/12/23 14:01
  115k 2008/12/23 C:\cygwin\bin\cygsvn_ra_serf-1-0.dll - os=4.0 img=1.0 sys=4.0
                  "cygsvn_ra_serf-1-0.dll" v0.0 ts=2008/12/23 14:02
   67k 2008/12/23 C:\cygwin\bin\cygsvn_ra_svn-1-0.dll - os=4.0 img=1.0 sys=4.0
                  "cygsvn_ra_svn-1-0.dll" v0.0 ts=2008/12/23 13:59
  132k 2008/12/23 C:\cygwin\bin\cygsvn_repos-1-0.dll - os=4.0 img=1.0 sys=4.0
                  "cygsvn_repos-1-0.dll" v0.0 ts=2008/12/23 14:05
  191k 2008/12/23 C:\cygwin\bin\cygsvn_subr-1-0.dll - os=4.0 img=1.0 sys=4.0
                  "cygsvn_subr-1-0.dll" v0.0 ts=2008/12/23 13:54
   44k 2008/12/23 C:\cygwin\bin\cygsvn_swig_py-1-0.dll - os=4.0 img=1.0 sys=4.0
                  "cygsvn_swig_py-1-0.dll" v0.0 ts=2008/12/23 14:51
  209k 2008/12/23 C:\cygwin\bin\cygsvn_wc-1-0.dll - os=4.0 img=1.0 sys=4.0
                  "cygsvn_wc-1-0.dll" v0.0 ts=2008/12/23 14:00
  312k 2006/11/10 C:\cygwin\bin\cygtiff-5.dll - os=4.0 img=1.0 sys=4.0
                  "cygtiff-5.dll" v0.0 ts=2006/11/10 3:09
  282k 2003/08/11 C:\cygwin\bin\cygtiff4.dll - os=4.0 img=1.0 sys=4.0
                  "cygtiff4.dll" v0.0 ts=2003/8/10 22:32
  888k 2008/10/26 C:\cygwin\bin\cygX11-6.dll - os=4.0 img=1.0 sys=4.0
                  "cygX11-6.dll" v0.0 ts=2008/10/25 21:40
    8k 2008/10/24 C:\cygwin\bin\cygXau-6.dll - os=4.0 img=1.0 sys=4.0
                  "cygXau-6.dll" v0.0 ts=2008/10/24 13:36
  351k 2008/11/21 C:\cygwin\bin\cygXaw-7.dll - os=4.0 img=1.0 sys=4.0
                  "cygXaw-7.dll" v0.0 ts=2008/11/20 20:05
  268k 2008/11/15 C:\cygwin\bin\cygXaw3d-7.dll - os=4.0 img=1.0 sys=4.0
                  "cygXaw3d-7.dll" v0.0 ts=2008/11/13 3:37
   77k 2008/10/24 C:\cygwin\bin\cygxcb-1.dll - os=4.0 img=1.0 sys=4.0
                  "cygxcb-1.dll" v0.0 ts=2008/10/24 13:51
    5k 2008/10/24 C:\cygwin\bin\cygxcb-xlib-0.dll - os=4.0 img=1.0 sys=4.0
                  "cygxcb-xlib-0.dll" v0.0 ts=2008/10/24 13:51
   30k 2008/10/26 C:\cygwin\bin\cygXcursor-1.dll - os=4.0 img=1.0 sys=4.0
                  "cygXcursor-1.dll" v0.0 ts=2008/10/25 22:09
   16k 2008/10/24 C:\cygwin\bin\cygXdmcp-6.dll - os=4.0 img=1.0 sys=4.0
                  "cygXdmcp-6.dll" v0.0 ts=2008/10/24 15:14
   49k 2008/10/26 C:\cygwin\bin\cygXext-6.dll - os=4.0 img=1.0 sys=4.0
                  "cygXext-6.dll" v0.0 ts=2008/10/25 23:25
   16k 2008/10/26 C:\cygwin\bin\cygXfixes-3.dll - os=4.0 img=1.0 sys=4.0
                  "cygXfixes-3.dll" v0.0 ts=2008/10/25 23:41
   62k 2008/10/26 C:\cygwin\bin\cygXft-2.dll - os=4.0 img=1.0 sys=4.0
                  "cygXft-2.dll" v0.0 ts=2008/10/26 2:52
  121k 2008/11/04 C:\cygwin\bin\cygxkbfile-1.dll - os=4.0 img=1.0 sys=4.0
                  "cygxkbfile-1.dll" v0.0 ts=2008/11/4 0:34
 1081k 2008/12/04 C:\cygwin\bin\cygxml2-2.dll - os=4.0 img=1.0 sys=4.0
                  "cygxml2-2.dll" v0.0 ts=2008/12/4 0:01
   74k 2008/10/26 C:\cygwin\bin\cygXmu-6.dll - os=4.0 img=1.0 sys=4.0
                  "cygXmu-6.dll" v0.0 ts=2008/10/26 3:05
   10k 2008/10/26 C:\cygwin\bin\cygXmuu-1.dll - os=4.0 img=1.0 sys=4.0
                  "cygXmuu-1.dll" v0.0 ts=2008/10/26 3:05
   53k 2008/10/26 C:\cygwin\bin\cygXpm-4.dll - os=4.0 img=1.0 sys=4.0
                  "cygXpm-4.dll" v0.0 ts=2008/10/26 3:14
   21k 2008/10/26 C:\cygwin\bin\cygXrandr-2.dll - os=4.0 img=1.0 sys=4.0
                  "cygXrandr-2.dll" v0.0 ts=2008/10/26 3:28
   31k 2008/10/26 C:\cygwin\bin\cygXrender-1.dll - os=4.0 img=1.0 sys=4.0
                  "cygXrender-1.dll" v0.0 ts=2008/10/26 3:28
  281k 2008/10/26 C:\cygwin\bin\cygXt-6.dll - os=4.0 img=1.0 sys=4.0
                  "cygXt-6.dll" v0.0 ts=2008/10/26 3:54
   65k 2006/10/16 C:\cygwin\bin\cygz.dll - os=4.0 img=1.0 sys=4.0
                  "cygz.dll" v0.0 ts=2006/10/15 21:10
 1829k 2008/06/12 C:\cygwin\bin\cygwin1.dll - os=4.0 img=1.0 sys=4.0
                  "cygwin1.dll" v0.0 ts=2008/6/12 13:35
    Cygwin DLL version info:
        DLL version: 1.5.25
        DLL epoch: 19
        DLL bad signal mask: 19005
        DLL old termios: 5
        DLL malloc env: 28
        API major: 0
        API minor: 156
        Shared data: 4
        DLL identifier: cygwin1
        Mount registry: 2
        Cygnus registry name: Cygnus Solutions
        Cygwin registry name: Cygwin
        Program options name: Program Options
        Cygwin mount registry name: mounts v2
        Cygdrive flags: cygdrive flags
        Cygdrive prefix: cygdrive prefix
        Cygdrive default prefix: 
        Build date: Thu Jun 12 19:34:46 CEST 2008
        CVS tag: cr-0x5f1
        Shared id: cygwin1S4

   56k 2004/03/11 C:\cygwin\usr\X11R6\bin\cygXft-1.dll - os=4.0 img=1.0 sys=4.0
                  "cygXft-1.dll" v0.0 ts=2003/11/17 20:42

Can't find the cygrunsrv utility, skipping services check.


Cygwin Package Information
Last downloaded files to: C:\packages
Last downloaded files from: http://cygwin.osuosl.org/

Package              Version
_update-info-dir     00795-1
alternatives         1.3.30c-2
ash                  20040127-4
atk                  1.10.3-1
atk-runtime          1.10.3-1
base-files           3.7-1
base-passwd          2.2-1
bash                 3.2.48-21
binutils             20080624-2
bsdiff               4.3-4
bzip2                1.0.5-2
cdargs               1.35-1
cocom                0.995-1
compface             1.5.2-1
coreutils            6.10-2
crypt                1.1-1
curl                 7.16.3-1
cvs                  1.11.22-1
cygutils             1.3.2-1
cygwin               1.5.25-15
cygwin-doc           1.4-4
diffutils            2.8.7-1
e2fsprogs            1.35-3
editrights           1.01-2
expat                2.0.1-1
file                 4.21-1
findutils            4.4.0-3
font-alias           1.0.1-1
font-bitstream-dpi75 1.0.0-1
font-encodings       1.0.2-1
fontconfig           2.6.0-1
freetype2            2.3.7-1
gawk                 3.1.6-1
gcc                  3.4.4-3
gcc-core             3.4.4-3
gcc-g++              3.4.4-3
gcc-mingw-core       20050522-1
gcc-mingw-g++        20050522-1
gdb                  6.8-2
gdbm                 1.8.3-8
gettext              0.17-3
glib2                2.10.3-1
glib2-runtime        2.10.3-1
gmp                  4.2.4-1
grep                 2.5.3-1
groff                1.19.2-2
gtk2-x11             2.6.10-1
gtk2-x11-runtime     2.6.10-1
gzip                 1.3.12-2
less                 382-1
libapr1              1.3.3-3
libaprutil1          1.3.4-1
libbz2_1             1.0.5-2
libcharset1          1.12-1
libcurl4             7.16.3-1
libdb4.1             4.1.25.3-2
libdb4.2             4.2.52.5-2
libdb4.3             4.3.29.1-1
libdb4.5             4.5.20.2-2
libecpg5             8.2.11-1
libexpat0            1.95.8-2
libexpat1            2.0.1-1
libexpat1-devel      2.0.1-1
libfontconfig1       2.6.0-1
libfontenc1          1.0.4-2
libfreetype2-devel   2.3.7-1
libfreetype26        2.3.7-1
libgcrypt            1.4.1-4
libgcrypt11          1.4.1-4
libgdbm              1.8.0-5
libgdbm-devel        1.8.3-8
libgdbm3             1.8.3-3
libgdbm4             1.8.3-8
libGL1               7.2-2
libglade2            2.5.1-1
libgmp3              4.2.4-1
libgpg-error         1.6-1
libguile12           1.6.7-4
libguile16           1.7.2-3
libICE6              1.0.4-2
libiconv             1.12-1
libiconv2            1.12-1
libintl              0.10.38-3
libintl1             0.10.40-1
libintl2             0.12.1-3
libintl3             0.14.5-1
libintl8             0.17-3
libjpeg62            6b-12
libncurses-devel     5.5-3
libncurses5          5.2-1
libncurses6          5.2-8
libncurses7          5.3-4
libncurses8          5.5-3
libneon26            0.26.4-1
libneon27            0.28.3-1
libopenldap2_2_7     2.2.26-2
libopenldap2_3_0     2.3.43-1
libpcre0             7.8-1
libpgtypes2          8.2.11-1
libpixman1_0         0.12.0-1
libpng12             1.2.12-1
libpopt0             1.6.4-4
libpq4               8.2.5-1
libpq5               8.2.11-1
libreadline4         4.1-2
libreadline5         4.3-5
libreadline6         5.2.13-11
libsasl2             2.1.19-3
libserf0_0           0.2.0-1
libSM6               1.1.0-1
libsqlite3_0         3.6.2-1
libssh2_1            0.15-1
libtiff4             3.6.0-5
libtiff5             3.8.2-3
libX11_6             1.1.5-1
libXau6              1.0.4-1
libXaw3d7            1.5D-8
libXaw7              1.0.5-1
libxcb-xlib0         1.1-2
libxcb1              1.1-2
libXcursor1          1.1.9-2
libXdmcp6            1.0.2-3
libXext6             1.0.4-1
libXfixes3           4.0.3-2
libXft1              1.0.0-1
libXft2              2.1.13-1
libxkbfile1          1.0.5-2
libxml2              2.7.2-1
libxml2-python       2.6.26-1
libXmu6              1.0.4-1
libXmuu1             1.0.4-1
libXpm4              3.5.7-2
libXrandr2           1.2.3-1
libXrender1          0.9.4-2
libXt6               1.0.5-2
lndir                1.0.1-2
login                1.9-8
luit                 1.0.3-1
make                 3.81-2
man                  1.6e-1
mercurial            1.1-1
mingw-runtime        3.15.2-1
minires              1.02-1
mkfontdir            1.0.4-1
mkfontscale          1.0.5-1
mktemp               1.999-9
ncurses              5.5-3
Numeric              24.2-1
openssl              0.9.8j-1
openssl097           0.9.7l-1
pango                1.8.1-1
pango-runtime        1.8.1-1
patch                2.5.8-9
pcre                 7.8-1
pcre-devel           7.8-1
pcre-doc             7.8-1
perl                 5.10.0-5
postgresql           8.2.11-1
postgresql-client    8.2.11-1
pygtk2               2.6.3-1
pylibxml2            2.6.28-2
python               2.5.2-1
python-libxml2       2.7.2-1
rebase               2.4.4-1
rgb                  1.0.3-1
ruby                 1.8.7-p72-2
run                  1.1.10-1
sed                  4.1.5-2
splint               3.1.1-2
subversion           1.5.5-1
subversion-python    1.5.5-1
tar                  1.21-1
tcltk                20080420-1
termcap              20050421-1
terminfo             5.5_20061104-1
texinfo              4.8a-1
tzcode               2008h-1
unzip                5.52-2
util-linux           2.14.1-1
vim                  7.2-3
w32api               3.13-1
wget                 1.11.4-3
which                2.20-1
X-startup-scripts    1.1.0-2
xauth                1.0.3-1
Xaw3d                1.5D-8
xcursor-themes       1.0.1-1
xinit                1.1.1-1
xkbcomp              1.0.5-1
xkeyboard-config     1.4-1
xmodmap              1.0.3-1
xorg-server          1.5.3-4
xorg-x11-base        7.4-1
xorg-x11-bin         7.4-1
xorg-x11-bin-dlls    7.4-1
xorg-x11-bin-lndir   7.4-1
xorg-x11-etc         7.4-1
xorg-x11-fenc        7.4-1
xorg-x11-fnts        7.4-1
xorg-x11-libs-data   7.4-1
xorg-x11-xwin        7.4-1
xrdb                 1.0.5-1
xterm                238-1
zlib                 1.2.3-2
Use -h to see help about each section

[-- Attachment #4: Type: text/plain, Size: 218 bytes --]

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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Problem using select() with com0com virtual serial ports
  2009-01-22 15:44 Problem using select() with com0com virtual serial ports Paul Ingemi
@ 2009-01-22 16:24 ` Christopher Faylor
  2009-01-23 14:16   ` Spiro Trikaliotis
  2009-01-24 22:55   ` Paul Ingemi
  0 siblings, 2 replies; 6+ messages in thread
From: Christopher Faylor @ 2009-01-22 16:24 UTC (permalink / raw)
  To: cygwin

On Thu, Jan 22, 2009 at 10:25:32AM -0500, Paul Ingemi wrote:
>I'm using Cygwin with com0com, and I find that every other time I read
>a character from the virtual serial port, select() continues to
>believe the serial port is ready, but then read() will block until a
>character actually comes in. This does not happen with a real serial
>port.
>
>Attached below is a test program which exhibits the symptoms when used
>with com0com virtual serial ports.
>
>I worked around the problem by performing a second select()
>immediately after the first one returns with ready file descriptors.
>That second select determines which of these really are ready.
>
>Using strace and the source code for Cygwin, I worked with the author
>of com0com, Vyacheslav Frolov, to find a potential problem and
>solution. That thread is here:
>
>http://sourceforge.net/forum/forum.php?thread_id=2885701&forum_id=440108
>
>Vyacheslav suggests that initially peek_serial() returns because
>st.cbInQue is nonzero. However, since we didn't wait for a comm event,
>EV_RXCHAR is still set on the comm handle. The next time into
>select(), st.cbInQue is zero but WaitCommEvent succeeds immediately
>due to the previously set event.
>
>By clearing the comm event mask (and therefore the comm event) before
>setting it to EV_RXCHAR:
>
>select.cc function peek_serial():
>  ...
>  SetCommMask (h, 0);          // <=== added
>  SetCommMask (h, EV_RXCHAR);
>  ...

This seems like a hack to me.  I don't see anything in the MSDN
documentation which would imply that SetCommMask (h, 0) should cause
this type of behavior.  Wouldn't the fact that this works for a regular
serial driver imply that there is a problem with the com0com driver?

It is a simple enough hack that I don't mind adding it, if it fixes your
problem but I am not convinced that your driver is operating correctly.

cgf

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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Problem using select() with com0com virtual serial ports
  2009-01-22 16:24 ` Christopher Faylor
@ 2009-01-23 14:16   ` Spiro Trikaliotis
  2009-01-24 22:55   ` Paul Ingemi
  1 sibling, 0 replies; 6+ messages in thread
From: Spiro Trikaliotis @ 2009-01-23 14:16 UTC (permalink / raw)
  To: cygwin

Hello,

* On Thu, Jan 22, 2009 at 10:55:22AM -0500 Christopher Faylor wrote:
> On Thu, Jan 22, 2009 at 10:25:32AM -0500, Paul Ingemi wrote:
[...] 
> It is a simple enough hack that I don't mind adding it, if it fixes your
> problem but I am not convinced that your driver is operating correctly.

As I had added serial port access to the Windows version of VICE one or
two months ago, I can tell that the com0com driver is indeed buggy. One
of my testers always claimed that the serial support just did not work.
After some debugging with him, we found out that it is com0com that is
"problematic", to say it positively.

Taking into account the opinion at various MS related newsgroups, which
states that the serial port driver of Windows is most probably one of
the most complicated drivers in the Windows driver world (neglecting the
filesystem drivers), this is not very surprising. Additionally, the
driver sources are very complicated, giving much room for BSODs if
something is not done correctly. I also have not seen any USB to serial
adapter yet where its drivers could not bluescreen the whole machine if
"the right steps were taken". The drivers for the Prolific PL2312 chip
is one of the worser variants, just pressing Ctrl+C in the right moment
in your console application will create a BSOD. I think this shows
enough that it is indeed very hard to get it right.

IMHO, the better solution is to fix com0com, and not to apply some
hotfixes to other software (cygwin, VICE, whatever). That's the approach
I followed, too, ignoring com0com completely. If I might have some time,
I might want to debug com0com myself, but don't hold your breath on it.

Best regards,
Spiro.

-- 
Spiro R. Trikaliotis                              http://opencbm.sf.net/
http://www.trikaliotis.net/                     http://www.viceteam.org/

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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Problem using select() with com0com virtual serial ports
  2009-01-24 22:55   ` Paul Ingemi
@ 2009-01-24 22:55     ` Christopher Faylor
  0 siblings, 0 replies; 6+ messages in thread
From: Christopher Faylor @ 2009-01-24 22:55 UTC (permalink / raw)
  To: cygwin

On Sat, Jan 24, 2009 at 03:30:34PM -0500, Paul Ingemi wrote:
>* On Thu, Jan 22, 2009 at 10:55:22AM -0500 Christopher Faylor wrote:
>> On Thu, Jan 22, 2009 at 10:25:32AM -0500, Paul Ingemi wrote:
>[...]
>> It is a simple enough hack that I don't mind adding it, if it fixes your
>> problem but I am not convinced that your driver is operating correctly.
>>
>> As I had added serial port access to the Windows version of VICE one or
>> two months ago, I can tell that the com0com driver is indeed buggy.
>>
>> IMHO, the better solution is to fix com0com, and not to apply some
>> hotfixes to other software (cygwin, VICE, whatever). That's the approach
>> I followed, too, ignoring com0com completely. If I might have some time,
>> I might want to debug com0com myself, but don't hold your breath on it.
>
>I agree and adding a hack to cygwin isn't necessary due to the
>existance of a workaround. That said, I think it's premature to blame
>com0com without finding the root cause of the problem.
>
>Over the past two days I've been attempting to create an -mno-cygwin
>executable that can reproduce the behavior I'm seeing under Cygwin.
>Thus far I haven't successfully reproduced this behavior outside of a
>Cygwin environment despite copying most of the code for how Cygwin
>performs select() and read().

I don't really see why it is necessary to stand you your head here.
Your change added a function call which, as far as I can tell from
documentation, should be a no-op.  The change is not required for normal
serial operation.  To me, that shows pretty clearly that com0com is
doing something nonstandard.

cgf

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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Problem using select() with com0com virtual serial ports
  2009-01-22 16:24 ` Christopher Faylor
  2009-01-23 14:16   ` Spiro Trikaliotis
@ 2009-01-24 22:55   ` Paul Ingemi
  2009-01-24 22:55     ` Christopher Faylor
  1 sibling, 1 reply; 6+ messages in thread
From: Paul Ingemi @ 2009-01-24 22:55 UTC (permalink / raw)
  To: cygwin

* On Thu, Jan 22, 2009 at 10:55:22AM -0500 Christopher Faylor wrote:
> On Thu, Jan 22, 2009 at 10:25:32AM -0500, Paul Ingemi wrote:
[...]
> It is a simple enough hack that I don't mind adding it, if it fixes your
> problem but I am not convinced that your driver is operating correctly.
>
> As I had added serial port access to the Windows version of VICE one or
> two months ago, I can tell that the com0com driver is indeed buggy.
>
> IMHO, the better solution is to fix com0com, and not to apply some
> hotfixes to other software (cygwin, VICE, whatever). That's the approach
> I followed, too, ignoring com0com completely. If I might have some time,
> I might want to debug com0com myself, but don't hold your breath on it.

I agree and adding a hack to cygwin isn't necessary due to the
existance of a workaround. That said, I think it's premature to blame
com0com without finding the root cause of the problem.

Over the past two days I've been attempting to create an -mno-cygwin
executable that can reproduce the behavior I'm seeing under Cygwin.
Thus far I haven't successfully reproduced this behavior outside of a
Cygwin environment despite copying most of the code for how Cygwin
performs select() and read().

Hopefully in the future I'll be able to provide more helpful information.

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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Problem using select() with com0com virtual serial ports
@ 2009-01-25 10:45 Paul Ingemi
  0 siblings, 0 replies; 6+ messages in thread
From: Paul Ingemi @ 2009-01-25 10:45 UTC (permalink / raw)
  To: cygwin

On Sat, 24 Jan 2009 16:26:39 -0500 Christopher Faylor wrote:
>On Sat, Jan 24, 2009 at 03:30:34PM -0500, Paul Ingemi wrote:
>>* On Fri, 23 Jan 2009 11:17:57 +0100 Spiro Trikaliotis wrote:
>>>* On Thu, Jan 22, 2009 at 10:55:22AM -0500 Christopher Faylor wrote:
>>>> On Thu, Jan 22, 2009 at 10:25:32AM -0500, Paul Ingemi wrote:
>>>[...]
>>>> It is a simple enough hack that I don't mind adding it, if it fixes your
>>>> problem but I am not convinced that your driver is operating correctly.
>>>>
>>>> As I had added serial port access to the Windows version of VICE one or
>>>> two months ago, I can tell that the com0com driver is indeed buggy.
>>>>
>>> IMHO, the better solution is to fix com0com, and not to apply some
>>> hotfixes to other software (cygwin, VICE, whatever). That's the approach
>>> I followed, too, ignoring com0com completely. If I might have some time,
>>> I might want to debug com0com myself, but don't hold your breath on it.
>>
>>I agree and adding a hack to cygwin isn't necessary due to the
>>existance of a workaround. That said, I think it's premature to blame
>>com0com without finding the root cause of the problem.
>>
>>Over the past two days I've been attempting to create an -mno-cygwin
>>executable that can reproduce the behavior I'm seeing under Cygwin.
>>Thus far I haven't successfully reproduced this behavior outside of a
>>Cygwin environment despite copying most of the code for how Cygwin
>>performs select() and read().
>
>I don't really see why it is necessary to stand you your head here.

I'm not sure I understand what you mean by "stand you your head"... if
you're asking why I'm going through this effort to reproduce the issue
outside of Cygwin, it's mainly because I can't easily debug the kernel
driver so I'm doing as much as I can in userland.

Creating a minimal reproduction gives me more information about the
problem. For instance, because copying most of the select() and read()
code out of Cygwin into a stand-alone executable didn't reproduce the
issue, I know there's another contributing factor that I have not
copied.

>Your change added a function call which, as far as I can tell from
>documentation, should be a no-op.

Agreed, although this only tells us the documentation presents a leaky
abstraction over what SetCommMask actually does.

>The change is not required for normal serial operation.  To me, that
> shows pretty clearly that com0com is doing something nonstandard.

It shows that com0com doesn't behave identically to Windows' serial port driver.

If I were to tell that to the com0com folks, they would point out
their driver works with other Windows applications, so Cygwin must be
nonstandard. In reality, Cygwin isn't necessarily doing something
nonstandard. It just doesn't behave identically to most Windows
applications.

For my purposes, I can use two select()s to work around the problem.
In the meantime, I'm doing my best to find the cause in what free time
I have. I hope that clears up any misunderstandings.

-- 
Paul Ingemi

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

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2009-01-25  0:48 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-01-22 15:44 Problem using select() with com0com virtual serial ports Paul Ingemi
2009-01-22 16:24 ` Christopher Faylor
2009-01-23 14:16   ` Spiro Trikaliotis
2009-01-24 22:55   ` Paul Ingemi
2009-01-24 22:55     ` Christopher Faylor
2009-01-25 10:45 Paul Ingemi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).