X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Message-ID: <4F847921.8020506@ui.ac.id> Date: Wed, 11 Apr 2012 01:17:05 +0700 From: Abdul Muis User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0) Gecko/20120327 Thunderbird/11.0.1 MIME-Version: 1.0 To: cygwin AT cygwin DOT com Subject: Problem with reading nonblocking /dev/com in 1.7.10 and up Content-Type: multipart/mixed; boundary="------------000106010404010209060308" Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com --------------000106010404010209060308 Content-Type: text/plain; charset=Shift_JIS Content-Transfer-Encoding: 7bit I have notice that I could not read serial device (/dev/com4 or /dev/ttyS3) with non blocking mode since 1.7.10 and up. I used to read serial data while doing openGL visualization. In which, the openGL display was not changed due to blocking mode reading. The command is fcntl(fd, F_SETFL, FNDELAY); // set reading as non blocking mode, should return '0' if no data comming n=read(fd, &test, 10); // starting from 1.7.10 always return -1 although there is incoming data There is no problem with blocking mode, the program can read incoming data fcntl(fd, F_SETFL, 0); // blocking mode n=read(fd, &test, 10); // the program will stop here until incoming data arrived Before reporting this bug, I have tested in Windows 7 32bit, Windows 7 64bit. luckily I have several cygwin version in different folder. I have tested the program in version 1.7.9, 1.7.10, 1.7.11, and current version 1.7.13 at both 32bit and 64bit Windows7. The program can read in non blocking mode only in 1.7.9 In addition, although I compiled the program in 1.7.10 and put cygwin1.dll (ver. 1.7.9) in the same folder, the program could read in non blocking mode too. So, I suspect the bug is in cygwin1.dll in version 1.7.10 and up. Unfortunately, if I compiled the program in 1.7.11 and 1.7.13 then used cygwin1.dll (ver. 1.7.9) the program stuck. I notice in version 1.7.10, there are additional API_MINOR changed (/usr/include/cygwin/version.h) 238: Export pthread_spin_destroy, pthread_spin_init, pthread_spin_lock, pthread_spin_trylock, pthread_spin_unlock. 239: Export pthread_setschedprio. 240: Export ppoll. 241: Export pthread_attr_getstack, pthread_attr_getstackaddr, pthread_getattr_np. 242: Export psiginfo, psignal, sys_siglist. 243: Export sysinfo. 244: Export clock_settime. 245: Export pthread_attr_getguardsize, pthread_attr_setguardsize, pthread_attr_setstack, pthread_attr_setstackaddr. 246: Add CLOCK_PROCESS_CPUTIME_ID, CLOCK_THREAD_CPUTIME_ID. Export clock_getcpuclockid, pthread_getcpuclockid. 247: Export error, error_at_line, error_message_count, error_one_per_line, error_print_progname. 248: Export __fpurge. 249: Export pthread_condattr_getclock, pthread_condattr_setclock. 250: Export clock_nanosleep. 251: RTLD_NODELETE, RTLD_NOLOAD, RTLD_DEEPBIND added. 252: CW_CVT_ENV_TO_WINENV added. 253: Export TIOCSCTTY, tcgetsid. 254: Export getgrouplist. 255: Export ptsname_r. 256: Add CW_ALLOC_DRIVE_MAP, CW_MAP_DRIVE_MAP, CW_FREE_DRIVE_MAP. 257: Export getpt. 258: Export get_current_dir_name. 259: Export pthread_sigqueue. I don't know what kind of changed that made non blocking read failed. I attached the program for testing. I really hope next version will make it possible again. Thanks in advanced for all efforts. Kind regards, Abdul Muis --------------000106010404010209060308 Content-Type: text/plain; charset=Shift_JIS; name="readserial.c" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="readserial.c" I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1 ZGUgPG1hdGguaD4KI2luY2x1ZGUgPHN0cmluZy5oPgojaW5jbHVkZSA8c3lz L3R5cGVzLmg+CiNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CiNpbmNsdWRlIDx1 bmlzdGQuaD4KI2luY2x1ZGUgPGZjbnRsLmg+CQkJLyogRmlsZSBjb250cm9s IGRlZmluaXRpb25zICovCiNpbmNsdWRlIDxlcnJuby5oPgkJCS8qIEVycm9y IG51bWJlciBkZWZpbml0aW9ucyAqLwojaW5jbHVkZSA8dGVybWlvcy5oPgkJ LyogUE9TSVggdGVybWluYWwgY29udHJvbCBkZWZpbml0aW9ucyAqLwojaW5j bHVkZSA8c3lzL3RpbWUuaD4KCiNpbmNsdWRlIDxpby5oPiAKCmludCBmZCwg ZnNlcjEsIGZzZXIyOwogIAppbnQgYmF1ZCwgcGFyaXR5OwoKaW50IG9wZW5f cG9ydCh2b2lkKSB7CglpbnQgZmQ7CQkvLyBGaWxlIERlc2NyaXB0b3IgZm9y IHNlcmlhbCBwb3J0CgljaGFyIHNbNjBdPSIvZGV2L2NvbTQiOwoJYmF1ZD0x OTIwMDsKCXBhcml0eT0wOwoJCglwcmludGYoIkNoZWNraW5nIGNvbW11bmlj YXRpb24gcG9ydCA6ICVzXG4iLHMpOwoJZmQgPSBvcGVuKHMsIE9fUkRXUiB8 IE9fTk9DVFRZIHwgT19OREVMQVkpOyAKCWlmKGZkID09IC0xKSB7CgkJcGVy cm9yKCItLSBVbmFibGUgdG8gb3BlbiAvZGV2L2NvbSAtLSIpOwoJCWV4aXQo MSk7Cgl9CWVsc2UgewoJCWZjbnRsKGZkLCBGX1NFVEZMLCAwKTsKCQlwcmlu dGYoIi4uLkRvbmVcbiIpOwoJfQoJCglyZXR1cm4oZmQpOwp9Cgp2b2lkIGlu aXRfcG9ydChpbnQgZmQpIHsKCXN0cnVjdCB0ZXJtaW9zIGNvbmZpZ3M7CgkK CXRjZ2V0YXR0cihmZCwgJmNvbmZpZ3MpOwoJCglzd2l0Y2goYmF1ZCkgewoJ CWNhc2UgOTYwMDogYmF1ZD1COTYwMDticmVhazsKCQljYXNlIDE5MjAwOiBi YXVkPUIxOTIwMDticmVhazsKCQljYXNlIDM4NDAwOiBiYXVkPUIzODQwMDti cmVhazsKCQlkZWZhdWx0OiBiYXVkPUIxOTIwMDsKCX0KCWNmc2V0aXNwZWVk KCZjb25maWdzLCBiYXVkKTsKCWNmc2V0b3NwZWVkKCZjb25maWdzLCBiYXVk KTsKCQoJLy8gU2V0dGluZyBDb250cm9sIE1vZGUKCXN3aXRjaCAocGFyaXR5 KSB7CgkJY2FzZSAxOiAgLy8gZXZlbiBwYXJpdHkKCQkJIGNvbmZpZ3MuY19j ZmxhZyB8PSBQQVJFTkI7CQkvLyBQYXJpdHkgZW5hYmxlCgkJCSBjb25maWdz LmNfY2ZsYWcgJj0gflBBUk9ERDsJCS8vIEV2ZW4gUGFyaXR5CgkJCSBicmVh azsKCQljYXNlIDI6ICAvLyBvZGQgcGFyaXR5CgkJCSBjb25maWdzLmNfY2Zs YWcgfD0gUEFSRU5COwkJLy8gUGFyaXR5IGVuYWJsZQoJCQkgY29uZmlncy5j X2NmbGFnIHw9IFBBUk9ERDsJCS8vIEV2ZW4gUGFyaXR5CgkJCSBicmVhazsK CQlkZWZhdWx0IDogLy8gbm8gcGFyaXR5CgkJCSAvL2NvbmZpZ3MuY19jZmxh ZyB8PSBQQVJFTkI7CQkvLyBQYXJpdHkgZW5hYmxlCgkJCSAvL2NvbmZpZ3Mu Y19jZmxhZyAmPSB+UEFST0REOwkJLy8gRXZlbiBQYXJpdHkKCQkJIGNvbmZp Z3MuY19jZmxhZyAmPSB+UEFSRU5COyAgLy8gUGFyaXR5IGRpc2FibGUKCX0K CWNvbmZpZ3MuY19jZmxhZyAmPSB+Q1NUT1BCOwkJLy8gMSBzdG9wIGJpdAoJ Ly9jb25maWdzLmNfY2ZsYWcgfD0gQ1NUT1BCOwkJLy8gMiBzdG9wIGJpdAoJ Y29uZmlncy5jX2NmbGFnICY9IH5DU0laRTsKCWNvbmZpZ3MuY19jZmxhZyB8 PSBDUzg7CQkJLy8gOC1iaXQgZGF0YQoJY29uZmlncy5jX2NmbGFnICY9IH5D UlRTQ1RTOwkvLyBEaXNhYmxlIGhhcmR3YXJlIGZsb3cgY29udHJvbAoJCgkv LyBTZXR0aW5nIExvY2FsIE1vZGUKCWNvbmZpZ3MuY19sZmxhZyAmPSB+KElD QU5PTiB8IEVDSE8gfCBFQ0hPRSB8IElTSUcpOwkvL1JBVyBpbnB1dAoJCgkv LyBTZXR0aW5nIElucHV0IG1vZGUKCWNvbmZpZ3MuY19pZmxhZyB8PSBJTlBD SzsJCQkvLyBFbmFibGluZyBQYXJpdHkgQ2hlY2sKCWNvbmZpZ3MuY19pZmxh ZyAmPSB+SVNUUklQOwkJCS8vIERpc2FibGUgc3RyaXAgb2ZmIDh0aCBiaXQg d2hlbiByZWNlaXZlZAoJY29uZmlncy5jX2lmbGFnICY9IH4oSVhPTiB8IElY T0ZGIHwgSVhBTlkpOwkvLyBEaXNhYmxlIHNvZnR3YXJlIGZsb3cgY29udHJv bAoJCgkvLyBTZXR0aW5nIE91dHB1dCBNb2RlCgljb25maWdzLmNfb2ZsYWcg Jj0gfk9QT1NUOwkJLy8gUkFXIG91dHB1dAoJCgkvLyBTZXR0aW5nIENvbnRy b2wgY2hhcnMKCWNvbmZpZ3MuY19jY1tWVElNRV0gPSAwOwkJLy8gVGltZW91 dCBpbiAwLjFzLCAwIChubyB0aW1lb3V0KQoJY29uZmlncy5jX2NjW1ZNSU5d ID0gMDsKCQoJdGNmbHVzaChmZCwgVENJRkxVU0gpOyAvLyBjbGVhbiBsaW5l CgkKCWlmICh0Y3NldGF0dHIoZmQsIFRDU0FOT1csICZjb25maWdzKSE9MCkg ewoJCWZwcmludGYoc3RkZXJyLCAiRVJST1IgISBVbmFibGUgdG8gd3JpdGUg Y29uZmlndXJhdGlvbiB0byBoYXJkd2FyZVxuIik7Cgl9Cn0KCgppbnQgbWFp bihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKCUZJTEUgKmZkYXRhOwoJaW50 IGNvbW0sIGNvdW50LG47Cgl1bnNpZ25lZCBjaGFyIGk7CglmZF9zZXQgcmVh ZF9mZDsKCXN0cnVjdCB0aW1ldmFsIHR2OwogIHR2LnR2X3NlYz0wOwoJdHYu dHZfdXNlYz0xMDA7CgogCXVuc2lnbmVkIGNoYXIgdGVzdFsxMF07CgkKCS8v T3BlbiBzZXJpYWwgcG9ydAoJZmQgPSBvcGVuX3BvcnQoKTsKCQoJLy9Jbml0 aWFsaXplIHNlcmlhbAoJaW5pdF9wb3J0KGZkKTsKCQoJaW50IGZkMCwgcmV0 dmFsOwoJc3RydWN0IHRpbWV2YWwgdHYwLCB0djE7CgkKICBnZXR0aW1lb2Zk YXkoJnR2MCwgTlVMTCk7CglwcmludGYoInN0YXJ0IHJlYWRpbmcuLlxuIik7 Cgl3aGlsZSgxKSB7CgkJCQlnZXR0aW1lb2ZkYXkoJnR2MSwgTlVMTCk7CgkJ CQlmY250bChmZCwgRl9TRVRGTCwgRk5ERUxBWSk7ICAvLyBzZXQgcmVhZGlu ZyBhcyBub24gYmxvY2tpbmcgCgkJCQluPXJlYWQoZmQsICZ0ZXN0LCAxMCk7 IC8vIHJldHVybiAtMSBpbiB2ZXJzaW9uIDEuNy4xMCBhbmQgdXAKCQkJCWlm IChuPjApIHsKCQkJCQlwcmludGYoIiVkLCAiLCh0djEudHZfc2VjLXR2MC50 dl9zZWMpKjEwMDArKHR2MS50dl91c2VjLzEwMDAtdHYwLnR2X3VzZWMvMTAw MCkpOwoJCQkJICBwcmludGYoInJlYWQgKCVkIGJ5dGVzKSA6ICIsIG4pOwoJ CQkJICBmb3IgKGk9MDtpPG47aSsrKQoJCQkJICAgIHByaW50ZigiJXggIiwg dGVzdFtpXSk7CgkJCQkgIHByaW50ZigiXG4iKTsKCQkJCX0gZWxzZQoJCQkJ ICBwcmludGYoIiVkIFxuIixuKTsKCX0KICBjbG9zZShmZCk7CglyZXR1cm4g MDsKfQo= --------------000106010404010209060308 Content-Type: text/plain; charset=us-ascii -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple --------------000106010404010209060308--