Browse Source
tcp_conn_handle_error гвардил uasync_remove_socket_t по tc->socket_id, пропуская повторный вызов. В одном epoll_wait batch два события (EPOLLERR + EPOLLOUT) на один fd: первое делает remove (socket_id=NULL), второе проходит guard и dispatch'ит write_cb на освобождённом tc. Фикс: всегда вызывать uasync_remove_socket_t + epoll_ctl(DEL), независимо от socket_id.chatgui
1 changed files with 7 additions and 4 deletions
Loading…
Reference in new issue