From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10211 invoked by alias); 19 Nov 2012 16:02:42 -0000 Received: (qmail 10146 invoked by uid 22791); 19 Nov 2012 16:02:40 -0000 X-SWARE-Spam-Status: No, hits=-2.8 required=5.0 tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,KHOP_THREADED,RCVD_IN_DNSWL_LOW,RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from hagrid.ecoscentric.com (HELO mail.ecoscentric.com) (212.13.207.197) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 19 Nov 2012 16:02:06 +0000 Received: by mail.ecoscentric.com (Postfix, from userid 48) id 2A48F468000E; Mon, 19 Nov 2012 16:02:05 +0000 (GMT) From: bugzilla-daemon@bugs.ecos.sourceware.org To: backlog@bugs.ecos.sourceware.org Subject: [Bug 21968] select does not work on stdin X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: eCos X-Bugzilla-Component: Other X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: kenkyee@excite.com X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Priority: low X-Bugzilla-Assigned-To: backlog@bugs.ecos.sourceware.org X-Bugzilla-Target-Milestone: 2.0 Final X-Bugzilla-Changed-Fields: In-Reply-To: References: X-Bugzilla-URL: http://bugs.ecos.sourceware.org/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 Date: Mon, 19 Nov 2012 16:02:00 -0000 Message-Id: <20121119160158.0B4754680010@mail.ecoscentric.com> Mailing-List: contact ecos-bugs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: ecos-bugs-owner@sourceware.org X-SW-Source: 2012/txt/msg01341.txt.bz2 Please do not reply to this email. Use the web interface provided at: http://bugs.ecos.sourceware.org/show_bug.cgi?id=21968 --- Comment #7 from Ken 2012-11-19 16:01:56 GMT --- > Where is it locked? What's the backtrace when you interrupt it from a debugger? The backtrace when I hit the stop button in Insight is: Cyg_HardwareThread::thread_entry(Cyg_Thread*) Cyg_HardwareThread::thread_entry(Cyg_Thread*) ConsoleTask() <--- this is my console thread read(int, void* size_t) <-- it went past the select and is blocked here readwritev(int, cyg_iovec const*, int, int) dev_fo_read(CYG_FILE_TAG*, CYGUIO_TAG*) cyg_io_read tty_read cyg_io_read serial-read haldiag_getc hal_if_diag_read_char __call_COMM_IF_GETC cyg_hal_plf_serial_getc cyg_hal_plf_serial_getc_nonblock Ironically, it ends up in a nonblocking function that blocks :-) > That seems to tell me that you're trying to use select with a HAL diagnostic > channel as your stdin. Don't do that. The HAL diagnostic channel is there for > debug only for simple output. It is polled only with interrupts off. Use a The problem is, with this board, we're short one port. It has 3 serial ports. Two are used for system usage (modem and board-board communication). The 3rd is our console port which we sent stdin/stdout to. eCos has a diag port where Assert messages are printed and we'd prefer that to go to the stdout port as well since we can't catch them and save them in our logs...unfortunately disabling the ROM monitor doesn't seem to help...it still seems to want to do blocking diag calls to the same port we're sharing stdin/stdout to. Sounds like we have to write a dummy serial port driver that writes the Assert to a known location in memory instead of having it dump to the stdin/stdout port? > What port is this? It's a port to a board based on an archaic 10yr old Atmel AT91M55800A chip that Atmel is no longer recommending for new designs :-P > what is fileno(stdin) in your environment? Matches what it should be according to the POSIX API..0 which matches the STDIN_FILENO macro -- Configure bugmail: http://bugs.ecos.sourceware.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug.