1/* 2 * lws-minimal-http-server-eventlib-foreign 3 * 4 * Written in 2010-2020 by Andy Green <andy@warmcat.com> 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 21static struct uloop_timeout timer_outer_uloop; 22 23static void 24timer_cb_uloop(struct uloop_timeout *ti) 25{ 26 foreign_timer_service(NULL); 27 uloop_timeout_set(&timer_outer_uloop, 1090); 28} 29 30static 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 43static void 44foreign_event_loop_stop_uloop(void) 45{ 46 uloop_end(); 47} 48 49static void 50foreign_event_loop_cleanup_uloop(void) 51{ 52 uloop_timeout_cancel(&timer_outer_uloop); 53} 54 55const 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