diff --git a/src/kernel/apps/Jamfile b/src/kernel/apps/Jamfile index 7af96fdf6a..91aa406254 100644 --- a/src/kernel/apps/Jamfile +++ b/src/kernel/apps/Jamfile @@ -9,6 +9,7 @@ KernelObjects sig_test.c select_test.c tls_test.c + on_exit_thread.c ; SubInclude OBOS_TOP src kernel apps cpuinfo ; diff --git a/src/kernel/apps/on_exit_thread.c b/src/kernel/apps/on_exit_thread.c new file mode 100644 index 0000000000..7ea9565512 --- /dev/null +++ b/src/kernel/apps/on_exit_thread.c @@ -0,0 +1,43 @@ +#include +#include + + +static void +first(void *data) +{ + printf("first on_exit_thread(): %ld\n", (int32)data); +} + + +static void +second(void *data) +{ + printf("second on_exit_thread(): %ld\n", (int32)data); +} + + +static int32 +thread(void *data) +{ + puts("Nurse Stimpy for the rescue!"); + + on_exit_thread(first, (void *)11); + on_exit_thread(second, (void *)22); + + return 0; +} + + +int +main(int argc, char **argv) +{ + status_t status; + thread_id id; + + on_exit_thread(first, (void *)666); + id = spawn_thread(thread, "mythread", B_NORMAL_PRIORITY, (void *)42); + resume_thread(id); + + wait_for_thread(id, &status); + return 0; +}