from select import select; from socket import *; class Kernel: def __init__(self): self.threads = []; self.timeouts = []; self.read = []; self.write = []; self.readh = {}; self.writeh = {}; def run(self): while 1: # calculate desired timeout # select (can_read, can_write) = select(self.read, self.write, none, timeout); # write for h in can_write: self.writeh[h](h); # read for h in can_read: self.readh[h](h); # timeouts # threads