v / vlib / picoev / picoev_interrupt_test_linux.c.v
22 lines · 17 sloc · 432 bytes · 491b27ebc36a48e39005748c30a0dcda61e3f904
Raw
1module picoev
2
3import os
4
5#include <unistd.h>
6
7fn C.alarm(seconds u32) u32
8
9fn ignore_test_signal(_ os.Signal) {}
10
11fn test_loop_once_ignores_eintr() {
12 mut pv := &Picoev{}
13 pv.loop = create_epoll_loop(0) or { panic(err) }
14 pv.init()
15 prev_handler := os.signal_opt(.alrm, ignore_test_signal) or { panic(err) }
16 defer {
17 C.alarm(0)
18 os.signal_opt(.alrm, prev_handler) or { panic(err) }
19 }
20 C.alarm(1)
21 assert pv.loop_once(2) == 0
22}
23