This is the mail archive of the ecos-patches@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] |
Hello all! The serial_select() implementation from "io/serial/current/src/common/serial.c" doesn't care about concurrent access to the cbuf structure. This leads to race conditions when the serial DSR routine changes the counters in this structure while select checks for "cbuf->nb == 0". As a result, user threads that sleep because of a select call will not be woken up, even if data arrives. Also access to this structure isn't implemented thread-safe because of missing mutex locks. The attached patch fixes this problems. Best regards, Andreas. _______________________________ Andreas Gäer Software Engineer Basler Vision Technologies An der Strusbek 60-62 22926 Ahrensburg Germany Tel +49 (4102) 463-517 Fax +49 (4102) 463-46211 mailto: Andreas.Gaer@baslerweb.com http://www.baslerweb.com _______________________________
Attachment:
serial_select.diff
Description: Binary data
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |