annotate modules/epoll.tp @ 377:93c28eee141e default tip

Merge
author Michael Pavone <pavone@retrodev.com>
date Sat, 15 Aug 2015 22:45:33 -0700
parents f8d80c16abbd
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
375
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1 {
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
2 _helper <- #{
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
3 includeSystemHeader: "sys/epoll.h"
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
4 llMessage: create withVars: {
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
5 efd <- obj_int32 ptr
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
6 } andCode: {
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
7 efd <- make_object: (addr_of: obj_int32_meta) NULL 0
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
8 efd num!: (epoll_create: 8)
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
9 efd
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
10 }
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
11
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
12 llMessage: ctl withVars: {
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
13 oepfd <- object ptr
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
14 epfd <- obj_int32 ptr
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
15 oop <- object ptr
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
16 op <- obj_int32 ptr
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
17 ofd <- object ptr
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
18 fd <- obj_int32 ptr
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
19 omask <- object ptr
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
20 mask <- obj_uint32 ptr
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
21 data <- object ptr
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
22 res <- obj_int32 ptr
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
23 event <- struct: epoll_event
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
24 } andCode: :oepfd oop ofd omask data {
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
25 epfd <- (mcall: int32 1 oepfd) castTo: (obj_int32 ptr)
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
26 op <- (mcall: int32 1 oop) castTo: (obj_int32 ptr)
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
27 fd <- (mcall: int32 1 ofd) castTo: (obj_int32 ptr)
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
28 mask <- (mcall: int32 1 omask) castTo: (obj_int32 ptr)
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
29 res <- make_object: (addr_of: obj_int32_meta) NULL 0
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
30 event events!: (mask num)
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
31 (addr_of: (event data)) ptr!: (data)
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
32 res num!: (epoll_ctl: (epfd num) (op num) (fd num) (addr_of: event))
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
33 res
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
34 }
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
35 }
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
36 _constant <- macro: :name cname {
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
37 quote: (llMessage: name withVars: {
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
38 uintret <- obj_uint32 ptr
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
39 } andCode: {
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
40 uintret <- make_object: (addr_of: obj_uint32_meta) NULL 0
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
41 uintret num!: cname
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
42 uintret
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
43 })
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
44 }
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
45 _controlOps <- #{
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
46 _constant: add EPOLL_CTL_ADD
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
47 _constant: mod EPOLL_CTL_MOD
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
48 _constant: del EPOLL_CTL_DEL
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
49 }
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
50 _events <- #{
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
51 _constant: in EPOLLIN
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
52 _constant: out EPOLLOUT
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
53 _constant: rdhup EPOLLRDHUP
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
54 _constant: pri EPOLLPRI
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
55 _constant: err EPOLLERR
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
56 _constant: hup EPOLLHUP
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
57 _constant: et EPOLLET
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
58 _constant: oneshot EPOLLONESHOT
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
59 }
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
60 #{
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
61 events <- { _events }
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
62 create <- {
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
63 efd <- _helper create
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
64 if: efd >= 0 {
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
65 _pinData <- dict hash
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
66 eobj <- #{
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
67 llProperty: _fd withType: int32_t
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
68 llMessage: _set_fd withVars: {
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
69 ofd <- object ptr
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
70 ifd <- obj_int32 ptr
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
71 } andCode: :ofd {
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
72 ifd <- (mcall: int32 1 ofd) castTo: (obj_int32 ptr)
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
73 _fd <- ifd num
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
74 self
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
75 }
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
76 llMessage: fd withVars: {
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
77 ifd <- obj_int32 ptr
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
78 } andCode: {
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
79 ifd <- make_object: (addr_of: obj_int32_meta) NULL 0
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
80 ifd num!: _fd
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
81 ifd
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
82 }
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
83
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
84 addFD:withMask:data <- :nfd :mask :data {
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
85 if: (_helper ctl: fd (_controlOps add) nfd mask data) = 0 {
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
86 _pinData set: nfd data
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
87 true
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
88 }
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
89 }
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
90 deleteFD <- :dfd {
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
91 if: (_helper ctl: fd (_controlOps del) dfd 0u32 false) = 0 {
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
92 //HACK: replace data with false since we don't have a delete method on hashes yet
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
93 _pinData set: dfd false
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
94 true
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
95 }
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
96 }
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
97 modifyFD:setMask:data <- :mfd :mask :data {
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
98 if: (_helper ctl: fd (_controlOps mod) mfd mask data) = 0 {
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
99 _pinData set: mfd data
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
100 true
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
101 }
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
102 }
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
103
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
104 event:data <- :_event:_data {
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
105 #{
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
106 event <- { _event }
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
107 data <- { _data }
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
108 }
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
109 }
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
110
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
111 llMessage: wait:maxEvents withVars: {
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
112 otimeout <- object ptr
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
113 omaxevents <- object ptr
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
114 timeout <- obj_int32 ptr
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
115 maxevents <- obj_int32 ptr
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
116 events <- (struct: epoll_event) ptr
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
117 retarr <- array ptr
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
118 res <- obj_int32 ptr
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
119 omask <- obj_uint32 ptr
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
120 i <- int32_t
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
121 } andCode: :otimeout omaxevents {
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
122 timeout <- (mcall: int32 1 otimeout) castTo: (obj_int32 ptr)
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
123 maxevents <- (mcall: int32 1 omaxevents) castTo: (obj_int32 ptr)
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
124 events <- GC_MALLOC_ATOMIC: (sizeof: (struct: epoll_event)) * (maxevents num)
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
125 res <- make_object: (addr_of: obj_int32_meta) NULL 0
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
126 res num!: (epoll_wait: _fd events (maxevents num) (timeout num))
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
127 if: (res num) >= 0 {
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
128 retarr <- make_array: 0
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
129 mcall: resize 2 retarr res
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
130 i <- 0
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
131 while: { i < (res num) } do: {
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
132 omask <- make_object: (addr_of: obj_uint32_meta) NULL 0
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
133 omask num!: ((addr_of: (events get: i)) events)
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
134 mcall: append 2 retarr (mcall: event:data 3 self omask ((addr_of: ((addr_of: (events get: i)) data) ) ptr))
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
135 i <- i + 1
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
136 }
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
137 mcall: value 2 option retarr
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
138 } else: {
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
139 mcall: none 1 option
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
140 }
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
141 }
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
142
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
143 llMessage: close withVars: {
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
144 } andCode: {
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
145 if: (close: _fd) = 0 {
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
146 true
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
147 } else: {
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
148 false
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
149 }
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
150 }
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
151 }
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
152 eobj _set_fd: efd
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
153 option value: eobj
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
154 } else: {
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
155 option none
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
156 }
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
157 }
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
158 }
f8d80c16abbd Add epoll module and a basic epoll sample
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
159 }