Bug 58193 - getc operations via RedBoot lock the system
Summary: getc operations via RedBoot lock the system
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: eCos
Classification: Retired
Component: HAL
Version: CVS
Hardware: All
OS: Linux
low
medium
Target Milestone: ---
Assignee: eCos bugs internal list
QA Contact: eCos bugs internal list
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2002-01-10 21:33 UTC by Jonathan Larmour
Modified: 2007-03-27 03:50 UTC (History)
0 users

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2003-06-20 16:11:02 UTC
Embargoed:


Attachments (Terms of Use)

Description Jonathan Larmour 2002-01-10 21:33:21 UTC
Description of Problem:

If someone does a getc operation that uses the virtual vectors to call into
redboot, then the system locks up and no other threads run because interrupts
are disabled and the scheduler is locked.

Instead hal_if_diag_read_char() should call a new CYGACC_COMM_IF_GETC_NONBLOCK
operation so that the looping to detect for a character is done with interrupts
enabled at least some of the time. Slower, but at least not stopped.

Comment 1 Jesper Skov 2002-01-11 06:57:41 UTC
I disagree. If you use the polled routines provided by the VV, well, you'll
be polling. If you need an interrupt safe environment, use an IO driver.

Comment 2 Jonathan Larmour 2002-01-11 13:10:22 UTC
I can't disagree with "If you need an interrupt safe environment, use an IO
driver.", but I don't see any harm in changing this behaviour (except arguably
bloat because we can't get rid of the non-block version now it's there).


Comment 3 Alex Schuilenburg 2003-06-20 16:11:02 UTC
This bug has moved to http://bugs.ecos.sourceware.org/show_bug.cgi?id=58193


Note You need to log in before you can comment on or make changes to this bug.