threads.txt 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  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. gethostent_r <desired, but not required for SuSv3>
  7. getnetbyaddr_r <desired, but not required for SuSv3>
  8. getnetent_r <desired, but not required for SuSv3>
  9. getnetbyname_r <desired, but not required for SuSv3>
  10. getprotobynumber_r <desired, but not required for SuSv3>
  11. getprotoent_r <desired, but not required for SuSv3>
  12. getprotobyname_r <desired, but not required for SuSv3>
  13. getnetbyaddr_r <desired, but not required for SuSv3>
  14. getnetbyname_r <desired, but not required for SuSv3>
  15. getnetent_r <desired, but not required for SuSv3>
  16. getprotobynumber_r <desired, but not required for SuSv3>
  17. getprotoent_r <desired, but not required for SuSv3>
  18. getprotobyname_r <desired, but not required for SuSv3>
  19. Functions that use static data and may still need locking:
  20. --------------------------------------------------------------------
  21. libc/inet/rpc/rpc_thread.c:
  22. __rpc_thread_variables is currently disabled, since thread
  23. local storage seems to not be correctly specified as
  24. weak functions.
  25. --------------------------------------------------------------------
  26. unistd/getpass.c:
  27. static char buf[PWD_BUFFER_SIZE];
  28. getpass <fix required> <---
  29. NOTE: This function returns a pointer to a static data structure.
  30. This seems like it requires an _r version of this function. Glibc
  31. does the same thing. Oops! So much for thread-safe glibc!
  32. --------------------------------------------------------------------
  33. unistd/sysconf.c:
  34. static long int ret_vals[_UCLIBC_SYSCONF_NUM_VALID_ARGS];
  35. find_or_add_in_table <fix required?> <---
  36. main <fix required?> <---
  37. NOTE: I'm not sure if this needs to be made reentrant...
  38. --------------------------------------------------------------------