Branch data Line data Source code
1 : :
2 : : #include "gwrl/event.h"
3 : : #include <pthread.h>
4 : :
5 : : gwrl * rl;
6 : : pthread_t th1;
7 : : bool did_timeout;
8 : :
9 : 2 : void timeout(gwrl * rl, gwrlevt * evt) {
10 : 2 : did_timeout = true;
11 : 2 : gwrl_stop(rl);
12 : 2 : }
13 : :
14 : 2 : void * threadMain(void * arg) {
15 : 2 : sleep(1);
16 : 2 : gwrl_post_function_safely(rl,&timeout,NULL);
17 : 2 : return NULL;
18 : : }
19 : :
20 : 2 : void start_thread(gwrl * rl, gwrlevt * evt) {
21 : 2 : pthread_create(&th1,NULL,&threadMain,NULL);
22 : 2 : }
23 : :
24 : 2 : int main(int argc, char ** argv) {
25 : 2 : rl = gwrl_create();
26 : 2 : gwrl_post_function(rl,&start_thread,NULL);
27 : 2 : gwrl_run(rl);
28 : 2 : pthread_join(th1,NULL);
29 : 2 : assert(did_timeout);
30 : 2 : return 0;
31 : : }
|