This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: gets() and task scheduling stopped


On Thu, 2002-01-10 at 10:22, Sam Sortais wrote:
[snip]
> For what I understand with gdb it seems to be stuck at the bottom of this
> sequence of calls gets() -> refill_…() -> read() -> readwrite() ->
> dev_fo_read() -> cyg_io_read() -> tty_read() ->cyg_io_read() ->
> serial_read() -> haldiag_getc() -> HAL_DIAG_READ->…
> The scheduler is locked at many levels in the previous calls. I was also
> looking at a loop in tty_read() which is done after a lock… but I do not
> catch all the details of this low level code.
> I updated with the latest CVS to be sure it was not another problem.
> Has anybody else experienced gets() in multithreaded environment ?

You need to use an IO driver to get proper multithreaded behavior. The
HAL keyboard driver is operating in polled mode only, causing the
behavior you observe.

The only IO device keyboard driver I see is for the iPAQ. You need to
write something similar for your platform.

Jesper


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]