threads.txt 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. uClibc thread-safety analysis
  2. Things that are still known to be needed for thread safety:
  3. getgrgid_r <not implemented, required by SuSv3>
  4. getgrnam_r <not implemented, required by SuSv3>
  5. Things that might be nice, but are not required:
  6. getnetent_r <desired, but not required for SuSv3>
  7. gethostent_r <desired, but not required for SuSv3>
  8. getprotoent_r <desired, but not required for SuSv3>
  9. getnetbyname_r <desired, but not required for SuSv3>
  10. getnetbyaddr_r <desired, but not required for SuSv3>
  11. Functions that use static data and may still need locking:
  12. --------------------------------------------------------------------
  13. libc/inet/rpc/rpc_thread.c:
  14. __rpc_thread_variables is currently disabled, since thread
  15. local storage seems to not be correctly specified as
  16. weak functions.
  17. --------------------------------------------------------------------
  18. unistd/getpass.c:
  19. static char buf[PWD_BUFFER_SIZE];
  20. getpass <fix required> <---
  21. NOTE: This function returns a pointer to a static data structure.
  22. This seems like it requires an _r version of this function. Glibc
  23. does the same thing. Oops! So much for thread-safe glibc!
  24. --------------------------------------------------------------------
  25. unistd/sysconf.c:
  26. static long int ret_vals[_UCLIBC_SYSCONF_NUM_VALID_ARGS];
  27. find_or_add_in_table <fix required?> <---
  28. main <fix required?> <---
  29. NOTE: I'm not sure if this needs to be made reentrant...
  30. --------------------------------------------------------------------