ladybird/Libraries/LibPthread
Andrew Kaster 7b94ca21b3 LibPthread: Implement destruction of pthread_keys
Add a function to destroy any keys that were set on the current thread
using the algorithm from Dr. POSIX's pthread_key_create. Add some
defines to pthread.h for pthread key use, and implement
pthread_key_delete. It has a prototype in pthread.h, but any program
trying to actually use it would be in for a link-time surprise.

Currently, keys are destroyed either via global destructors, with the
s_key_destroyer object, or in exit_thread. exit_thread is invoked by
pthread_exit, and transitively by pthread_create, via the
pthread_create_helper that ensures all threads created with the pthread
API properly clean up for themselves when they exit gracefully.

A future patch might make s_key_destroyer a C++11 thread_local instead,
assuming we get thread_local and thread_local destructors working.
2021-01-01 23:01:48 +01:00
..
CMakeLists.txt LibPthread: Implement pthread_once() 2020-11-24 21:36:28 +01:00
pthread.cpp LibPthread: Implement destruction of pthread_keys 2021-01-01 23:01:48 +01:00
pthread.h LibPthread: Implement destruction of pthread_keys 2021-01-01 23:01:48 +01:00
pthread_once.cpp Everywhere: void arguments to C functions 2020-12-26 10:10:27 +01:00