You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by GitBox <gi...@apache.org> on 2021/12/21 18:04:29 UTC

[GitHub] [incubator-nuttx] gustavonihei commented on a change in pull request #5017: libc: Enable terminal api regardless of CONFIG_SERIAL_TERMIOS setting

gustavonihei commented on a change in pull request #5017:
URL: https://github.com/apache/incubator-nuttx/pull/5017#discussion_r773343212



##########
File path: drivers/serial/serial.c
##########
@@ -1332,12 +1333,28 @@ static int uart_ioctl(FAR struct file *filep, int cmd, unsigned long arg)
             }
             break;
 
-#ifdef CONFIG_SERIAL_TERMIOS
           case TCFLSH:
             {
               /* Empty the tx/rx buffers */
 
-              irqstate_t flags = enter_critical_section();
+              irqstate_t flags;
+
+              /* tcdrain is a cancellation point */
+
+              if (enter_cancellation_point())

Review comment:
       According to the latest version of the Open Group standard, `tcdrain` is required to be a thread cancellation point:
   https://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html#tag_15_09_05_02
   
   So, strictly speaking, the most correct would be to set the cancellation point inside `tcdrain()`.
   Even so, it wouldn't compromise the points raised by @xiaoxiang781216, since it would still continue to be a userspace wrapper around the `TCDRN` ioctl call.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org