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