README revision 42bf2220
1460998e0SShuo ChenEngineering a Reactor
2460998e0SShuo Chen -- how to write a non-blocking network library from scratch.
3460998e0SShuo Chen
4460998e0SShuo ChenStep 0: a do-nothing event loop
542bf2220SShuo Chen  EventLoop, assertInLoopThread()
642bf2220SShuo Chen  test1: poll for 10 seconds
7460998e0SShuo Chen  test2: abort() as it accesses event loop created in a different thread
8460998e0SShuo Chen
942bf2220SShuo ChenStep 1: prototype of reactor
1042bf2220SShuo Chen  Channel, Poller, updateChannel().
1142bf2220SShuo Chen  test1: poll for ever
1242bf2220SShuo Chen  test2: same as before
1342bf2220SShuo Chen  test3: poll a timerfd, which expires in 5 seconds
1442bf2220SShuo Chen
1542bf2220SShuo ChenStep 2: TimerQueue
1642bf2220SShuo Chen  TimerQueue, Timer, TimerId, EventLoop::runAfter, EventLoop::runEvery
1742bf2220SShuo Chen  test3: use EventLoop::runAfter
1842bf2220SShuo Chen
1942bf2220SShuo ChenStep 3: wakeup(), runInLoop()
2042bf2220SShuo Chen
2142bf2220SShuo ChenStep 4: Acceptor
2242bf2220SShuo Chen
2342bf2220SShuo ChenStep 5: TcpServer
2442bf2220SShuo Chen
2542bf2220SShuo ChenStep 6: TcpConnection up and down
2642bf2220SShuo Chen
2742bf2220SShuo ChenStep 7: TcpConnection read
2842bf2220SShuo Chen
2942bf2220SShuo ChenStep 8: TcpConnection write
3042bf2220SShuo Chen
3142bf2220SShuo ChenStep 9: multithreaded TcpServer
3242bf2220SShuo Chen
3342bf2220SShuo ChenStep 10: Connector
3442bf2220SShuo Chen
3542bf2220SShuo ChenStep 11: TcpClient
3642bf2220SShuo Chen
3742bf2220SShuo ChenStep 12: epoll
3842bf2220SShuo Chen
39