Make improvements

- Improve compatibility with Blink virtual machine
- Add non-POSIX APIs for joining threads and signal masks
- Never ever use anything except 32-bit integers for atomics
- Add some `#undef` statements to workaround `ctags` problems
This commit is contained in:
Justine Tunney 2022-11-10 21:52:47 -08:00
parent b46ac13504
commit f2af97711b
No known key found for this signature in database
GPG key ID: BE714B4575D6E328
114 changed files with 902 additions and 363 deletions

View file

@ -38,6 +38,7 @@ void *Worker(void *arg) {
}
TEST(pthread_exit, joinableOrphanedChild_runsAtexitHandlers) {
pthread_t th;
pthread_attr_t attr;
SPAWN(fork);
atexit(OnExit);
@ -45,13 +46,14 @@ TEST(pthread_exit, joinableOrphanedChild_runsAtexitHandlers) {
main_thread = pthread_self();
ASSERT_EQ(0, pthread_attr_init(&attr));
ASSERT_EQ(0, pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE));
ASSERT_EQ(0, pthread_create(0, &attr, Worker, 0));
ASSERT_EQ(0, pthread_create(&th, &attr, Worker, 0));
ASSERT_EQ(0, pthread_attr_destroy(&attr));
pthread_exit(0);
EXITS(CHILD);
}
TEST(pthread_exit, detachedOrphanedChild_runsAtexitHandlers) {
pthread_t th;
pthread_attr_t attr;
SPAWN(fork);
atexit(OnExit);
@ -59,7 +61,7 @@ TEST(pthread_exit, detachedOrphanedChild_runsAtexitHandlers) {
main_thread = pthread_self();
ASSERT_EQ(0, pthread_attr_init(&attr));
ASSERT_EQ(0, pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED));
ASSERT_EQ(0, pthread_create(0, &attr, Worker, 0));
ASSERT_EQ(0, pthread_create(&th, &attr, Worker, 0));
ASSERT_EQ(0, pthread_attr_destroy(&attr));
pthread_exit(0);
EXITS(CHILD);