nyara
nyara copied to clipboard
Switch to edge-trigger events
Requires to consume everything in read and write implementation.
Main loop fd handling change
If it is server fd, add a counter, do not put into the st_table for uniqueness.
Process the server_fd accept after rids in the st_table, and make sure we read the client one round server_fd accept
Sweeping
After every several loops, check last_updated, and sweep timed out rids.
Misc: improvement to current event system
- [x] Change milestone of this issue to 1.0 when the above improvement is finished.
- [ ] Yield hidden objects instead of symbols.
- [ ] Release GVL in epoll/kqueue, and regain GVL after collecting rids.
- [ ] Option to limit rid_request_map capacity.
- [ ] Tweak redundant accept number by the number of forked workers.