fixes #73 small leak in cleaning up per-socket
mempool on daemon exit
void session_free(struct session *s)
{
- session_clear(s);
- free(s);
+ if (s) {
+ session_clear(s);
+ free(s);
+ }
}
struct session *session_new(void)
}
}
-static void free_handle(uv_handle_t *handle)
-{
- free(handle);
-}
-
static void close_handle(uv_handle_t *handle, bool force)
{
if (force) { /* Force close if event loop isn't running. */
if (uv_fileno(handle, &fd) == 0) {
close(fd);
}
- free_handle(handle);
+ handle->loop = NULL;
+ io_free(handle);
} else { /* Asynchronous close */
- uv_close(handle, free_handle);
+ uv_close(handle, io_free);
}
}