1 /* 2 * lws-minimal-http-server-eventlib-foreign 3 * 4 * Written in 2010-2020 by Andy Green <[email protected]> 5 * 6 * This file is made available under the Creative Commons CC0 1.0 7 * Universal Public Domain Dedication. 8 * 9 * The uloop specific code 10 */ 11 12 #include <libwebsockets.h> 13 14 #include <libubox/uloop.h> 15 16 #include <string.h> 17 #include <signal.h> 18 19 #include "private.h" 20 21 static struct uloop_timeout timer_outer_uloop; 22 23 static void timer_cb_uloop(struct uloop_timeout * ti)24timer_cb_uloop(struct uloop_timeout *ti) 25 { 26 foreign_timer_service(NULL); 27 uloop_timeout_set(&timer_outer_uloop, 1090); 28 } 29 30 static void foreign_event_loop_init_and_run_uloop(void)31foreign_event_loop_init_and_run_uloop(void) 32 { 33 uloop_init(); 34 35 timer_outer_uloop.cb = timer_cb_uloop; 36 uloop_timeout_add(&timer_outer_uloop); 37 38 uloop_timeout_set(&timer_outer_uloop, 1090); 39 40 uloop_run(); 41 } 42 43 static void foreign_event_loop_stop_uloop(void)44foreign_event_loop_stop_uloop(void) 45 { 46 uloop_end(); 47 } 48 49 static void foreign_event_loop_cleanup_uloop(void)50foreign_event_loop_cleanup_uloop(void) 51 { 52 uloop_timeout_cancel(&timer_outer_uloop); 53 } 54 55 const struct ops ops_uloop = { 56 foreign_event_loop_init_and_run_uloop, 57 foreign_event_loop_stop_uloop, 58 foreign_event_loop_cleanup_uloop 59 }; 60