Socket overhaul (1)
* Internally, libev maintains a list of watchers for each monitored fd. Add ev_io_closing(fd), does ev_feed_event() for each watcher affected. * Add coio_close() [Public API] Wakes all fibers blocked in coio_wait() AND closes the fd. Prerequisite for #886 Non-blocking popen. * Lua socket switched to coio_close(); stop tracking waiters explicitly. * socket ::= { _gc_socket = <ffi:struct gc_socket> }, _gc_socket was previously known as socket. Gc_socket stores the fd in immutable field. * Overall socket module cleanup.
Showing
- extra/exports 1 addition, 0 deletionsextra/exports
- src/coio.cc 7 additions, 1 deletionsrc/coio.cc
- src/coio.h 7 additions, 0 deletionssrc/coio.h
- src/lua/socket.c 3 additions, 17 deletionssrc/lua/socket.c
- src/lua/socket.lua 79 additions, 100 deletionssrc/lua/socket.lua
- test/app/socket.result 12 additions, 12 deletionstest/app/socket.result
- test/app/socket.test.lua 4 additions, 4 deletionstest/app/socket.test.lua
- third_party/libev/ev.c 20 additions, 0 deletionsthird_party/libev/ev.c
- third_party/libev/ev.h 8 additions, 0 deletionsthird_party/libev/ev.h
Loading
Please register or sign in to comment