facil.io v0.4.0 Release Notes
-
Rewrite from core. The code is more concise with less duplications.
Different API.
The server is now a global state machine instead of an object.
๐ Better integration with
libsock
.๐ Handles
libsock
's UUID instead of direct file descriptors, preventing file descriptor collisions and preventing long running tasks from writing to the wrong client (i.e., if file descriptor 6 got disconnected and someone else connected and receive file descriptor 6 to identify the socket).Better concurrency protection and protocol cleanup
on_close
. Now, deferred tasks (server_task
/server_each
), theon_data
callback and even theon_close
callback all run within a connection's "lock" (busy flag), limiting concurrency for a single connection to theon_ready
andping
callbacks. No it is safe to free the protocol's memory during anon_close
callback, as it is (almost) guarantied that no running tasks are using that memory (this assumes thatping
andon_ready
don't use any data placed protocol's memory).