Howto cancel a blocked termios read request
Wolfram Wadepohl
Wolfram.Wadepohl at ek-automation.com
Wed May 9 05:33:03 UTC 2007
Sounds good, Eric. This call will introduce many lines to termios; a couple
of lines ahould be enough.
I will implement this support in the next few days and we can discuss
afterwards about putting it in or not.
Eric Norum schrieb:
> At the expense of yet more bloat in termios.c perhaps the best thing
> would be to add support for an FIOCANCEL ioctl request (like vxWorks
> provides):
>
> ioctl(fd, FIOCANCEL, NULL);
>
> Might be a addition to the network stack, too.
>
> On May 8, 2007, at 6:19 AM, Joel Sherrill wrote:
>
>> Wolfram Wadepohl wrote:
>>
>>> i need to cancel a blocked termios read request.
>>>
>>> the request blocks at the tty->rawInBuf.Semaphore in fillBufferQueue():
>>>
>>> ...
>>> /*
>>> * Wait for characters
>>> */
>>> if ( wait ) {
>>> sc = rtems_semaphore_obtain (tty->rawInBuf.Semaphore,
>>> tty->rawInBufSemaphoreOptions,
>>> timeout);
>>> if (sc != RTEMS_SUCCESSFUL)
>>> break;
>>> }
>>> ...
>>>
>>> using ioctl to set c_cc[VMIN] = c_cc[VTIME] = 0 does not help, because
>>> it changes only tty->rawInBufSemaphoreOptions, which will be in effect
>>> for the *next* call to rtems_semaphore_obtain().
>>>
>>> should we put an extra rtems_semaphore_release() call in the code,
>>> when we set tty->rawInBufSemaphoreOptions to RTEMS_NO_WAIT (line 571)
>>> in case of c_cc[VMIN] = c_cc[VTIME] = 0?
>>>
>>> any other suggestions to cancel a blocked read?
>>
>> Can that semaphore be flushed? I don't know what the API would be to
>> the user but that should
>> end up returning not satisfied.
>>
>> It would also allow it to be canceled on a signal.
>>
>> --joel
>>
>>> thanks.
>>>
>>> ---------------------------------------------------------------------
>>> ---
>>>
>>> _______________________________________________
>>> rtems-users mailing list
>>> rtems-users at rtems.com
>>> http://rtems.rtems.org/mailman/listinfo/rtems-users
>>>
>>
>> _______________________________________________
>> rtems-users mailing list
>> rtems-users at rtems.com
>> http://rtems.rtems.org/mailman/listinfo/rtems-users
>
>
--
Schöne Grüße aus Reutlingen
Wolfram Wadepohl
Forschung & Entwicklung
E&K AUTOMATION
Indumat GmbH & Co. KG
Siemensstraße 3
72766 Reutlingen
Deutschland
Tel. +49 7121 514-289
Fax +49 7121 514-299
eMail Wolfram.Wadepohl at ek-automation.com
W.Wadepohl at ieee.org
WWW http://www.ek-automation.com
http://www.indumat.de
Diese Nachricht ist keine geschäftliche Mitteilung i. S. des EHUG.
Bitte senden Sie mir keine Word- oder PowerPoint- (tm Microsoft) Anhänge.
Senden Sie mir einfachen Text, HTML oder PDF.
Siehe http://www.gnu.org/philosophy/no-word-attachments.de.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 3210 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://lists.rtems.org/pipermail/users/attachments/20070509/5ab82479/attachment-0001.bin>
More information about the users
mailing list