patacongo commented on a change in pull request #3626:
URL: https://github.com/apache/incubator-nuttx/pull/3626#discussion_r623407997
##########
File path: syscall/syscall.csv
##########
@@ -83,14 +84,14 @@
"pselect","sys/select.h","","int","int","FAR fd_set *","FAR fd_set *","FAR
fd_set *","FAR const struct timespec *","FAR const sigset_t *"
"pthread_cancel","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","pthread_t"
"pthread_cleanup_pop","pthread.h","defined(CONFIG_PTHREAD_CLEANUP)","void","int"
+"pthread_cleanup_poplist","pthread.h","defined(CONFIG_PTHREAD_CLEANUP)","int","struct
pthread_cleanup_s *"
"pthread_cleanup_push","pthread.h","defined(CONFIG_PTHREAD_CLEANUP)","void","pthread_cleanup_t","FAR
void *"
Review comment:
pthread_cleanup_poplist currently uses data in the TCB to save the
cleanup info. That is a problem since you have to trap into supervisor mode to
access the TCB.
That cleanup data needs to be move to TLS and pthread_cleanup_poplist()
needs to be moved to libs/libc/pthread. Then this can all be done in user
space.
--
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]