aboutsummaryrefslogtreecommitdiffstats
path: root/src/loop.h
blob: 625457c54e4d1f25e24dfba732e23698a7906669 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#ifndef _RUNES_LOOP_H
#define _RUNES_LOOP_H

#include <uv.h>

struct runes_loop {
    uv_loop_t *loop;
};

struct runes_loop_data {
    uv_work_t req;
    RunesLoop *loop;
    RunesTerm *t;
    void (*work_cb)(RunesTerm*);
    int (*after_work_cb)(RunesTerm*);
};

void runes_loop_init(RunesLoop *loop);
void runes_loop_init_term(RunesLoop *loop, RunesTerm *t);
void runes_loop_run(RunesLoop *loop);
void runes_loop_start_work(RunesLoop *loop, RunesTerm *t,
                           void (*work_cb)(RunesTerm*),
                           int (*after_work_cb)(RunesTerm*));
void runes_loop_timer_set(RunesLoop *loop, int timeout, int repeat,
                          RunesTerm *t, void (*cb)(RunesTerm*));
void runes_loop_cleanup(RunesLoop *loop);

#endif