Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

executable file 58 lines (45 sloc) 1.422 kB
#!/usr/bin/python
def get(old,wc,rc):
if ('xxx' in (rc, wc)):
return "0",-1
if ('add' in (rc, wc)):
events = []
if rc == 'add' or (rc != 'del' and 'r' in old):
events.append("EPOLLIN")
if wc == 'add' or (wc != 'del' and 'w' in old):
events.append("EPOLLOUT")
if old == "0":
op = "EPOLL_CTL_ADD"
else:
op = "EPOLL_CTL_MOD"
return "|".join(events), op
if ('del' in (rc, wc)):
op = "EPOLL_CTL_DEL"
if rc == 'del':
if wc == 'del':
events = "EPOLLIN|EPOLLOUT"
elif 'w' in old:
events = "EPOLLOUT"
op = "EPOLL_CTL_MOD"
else:
events = "EPOLLIN"
else:
assert wc == 'del'
if 'r' in old:
events = "EPOLLIN"
op = "EPOLL_CTL_MOD"
else:
events = "EPOLLOUT"
return events, op
return 0, 0
def fmt(op, ev, old, wc, rc):
entry = "{ %s, %s },"%(op, ev)
assert len(entry)<=36
sp = " "*(36-len(entry))
print "\t%s%s/* old=%2s, write:%3s, read:%3s */" % (
entry, sp, old, wc, rc)
for old in ('0','r','w','rw'):
for wc in ('0', 'add', 'del', 'xxx'):
for rc in ('0', 'add', 'del', 'xxx'):
op,ev = get(old,wc,rc)
fmt(op, ev, old, wc, rc)
Jump to Line
Something went wrong with that request. Please try again.