patacongo commented on a change in pull request #1187:
URL: https://github.com/apache/incubator-nuttx/pull/1187#discussion_r438270516



##########
File path: sched/pthread/pthread_cleanup.c
##########
@@ -173,8 +165,7 @@ void pthread_cleanup_push(pthread_cleanup_t routine, FAR 
void *arg)
    */
 
   sched_lock();
-  if ((tcb->cmn.flags & TCB_FLAG_TTYPE_MASK) == TCB_FLAG_TTYPE_PTHREAD &&
-      tcb->tos < CONFIG_PTHREAD_CLEANUP_STACKSIZE)
+  if (tcb->tos < CONFIG_PTHREAD_CLEANUP_STACKSIZE)

Review comment:
       > because main/kernel thread type is 
TCB_FLAG_TTYPE_TASK/TCB_FLAG_TTYPE_KERNEL, but both types should be able to 
call pthread_cleanup_push/pthread_cleanup_pop. The major target of whole patch 
set is ensure the main/kernel thread can call all most pthread API like pthread.
   
   But kernel threads cannot create pthreads.  pthreads reside only in user 
space.
   
   What would that even mean in a kernal build.  It makes no sense.  Which user 
space?
   
   No pthread APIs should be availble to kernel threads.  That must be 
forbidden by the OS.  I believe that would result in severe, catastrophic 
breakage if permitted.




----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to