xref: /llvm-project/lldb/test/API/macosx/safe-to-func-call/main.c (revision 99451b4453688a94c6014cac233d371ab4cc342d)
1*99451b44SJordan Rupprecht #include <sys/time.h>  // work around module map issue with iOS sdk, <rdar://problem/35159346>
2*99451b44SJordan Rupprecht #include <sys/select.h>
3*99451b44SJordan Rupprecht #include <stdio.h>
4*99451b44SJordan Rupprecht #include <pthread.h>
5*99451b44SJordan Rupprecht #include <unistd.h>
6*99451b44SJordan Rupprecht 
7*99451b44SJordan Rupprecht void *
select_thread(void * in)8*99451b44SJordan Rupprecht select_thread (void *in)
9*99451b44SJordan Rupprecht {
10*99451b44SJordan Rupprecht     pthread_setname_np ("select thread");
11*99451b44SJordan Rupprecht     fd_set fdset;
12*99451b44SJordan Rupprecht     FD_SET (STDIN_FILENO, &fdset);
13*99451b44SJordan Rupprecht     while (1)
14*99451b44SJordan Rupprecht         select (2, &fdset, NULL, NULL, NULL);
15*99451b44SJordan Rupprecht     return NULL;
16*99451b44SJordan Rupprecht }
17*99451b44SJordan Rupprecht 
stopper()18*99451b44SJordan Rupprecht void stopper ()
19*99451b44SJordan Rupprecht {
20*99451b44SJordan Rupprecht     while (1)
21*99451b44SJordan Rupprecht         sleep(1); // break here
22*99451b44SJordan Rupprecht }
23*99451b44SJordan Rupprecht 
main()24*99451b44SJordan Rupprecht int main ()
25*99451b44SJordan Rupprecht {
26*99451b44SJordan Rupprecht     pthread_setname_np ("main thread");
27*99451b44SJordan Rupprecht     pthread_t other_thread;
28*99451b44SJordan Rupprecht     pthread_create (&other_thread, NULL, select_thread, NULL);
29*99451b44SJordan Rupprecht     sleep (1);
30*99451b44SJordan Rupprecht     stopper();
31*99451b44SJordan Rupprecht }
32