1b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov/* Invoke pthread_detach() with an invalid thread ID. */
2b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov
3b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#include <assert.h>
4b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#include <errno.h>
5b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#include <pthread.h>
6b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#include <stdio.h>
7b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov
8b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanovstatic void* thread_func(void* arg)
9b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov{
10b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov  return 0;
11b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov}
12b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov
13b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanovint main(int argc, char** argv)
14b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov{
15b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov  pthread_t thread;
16b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov
17b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov  pthread_create(&thread, NULL, thread_func, NULL);
18b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov  pthread_join(thread, NULL);
19b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov
20b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov  /* Invoke pthread_detach() with the thread ID of a joined thread. */
21b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov  pthread_detach(thread);
22b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov
23b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov  /* Invoke pthread_detach() with an invalid thread ID. */
24436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  pthread_detach(thread + 8);
25b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov
26b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov  fprintf(stderr, "Finished.\n");
27b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov
28b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov  return 0;
29b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov}
30