Ghost network state machine - design Kernel: internal: select bitsets hash of all links by object, hence all machines in the network run method timeout system links out: trigger can_read (for each registered FD) trigger can_write (for each registered FD) - might be redirected to error or null for each registered signal: signal links in: struct register_fd { int fd, trigger* can_read, trigger* can_write } register: register a FD struct register_signal { } Read: links in: trigger can_read links out: trigger eof trigger error buffer data none Merge: useful "or" for triggers