| 31 | } |
| 32 | |
| 33 | CSocketImpl::~CSocketImpl() { |
| 34 | base::LOG_DEBUG("close a socket, socket : %d, TheadId : %lld", _sock, std::this_thread::get_id()); |
| 35 | |
| 36 | if (IsInActions()) { |
| 37 | _event_actions->DelEvent(_sock); |
| 38 | } |
| 39 | |
| 40 | // release res |
| 41 | if (_read_event && _read_event->_data) { |
| 42 | epoll_event* temp = (epoll_event*)_read_event->_data; |
| 43 | _pool->PoolDelete<epoll_event>(temp); |
| 44 | _read_event->_data = nullptr; |
| 45 | } |
| 46 | if (_write_event && _write_event->_data) { |
| 47 | epoll_event* temp = (epoll_event*)_write_event->_data; |
| 48 | _pool->PoolDelete<epoll_event>(temp); |
| 49 | _write_event->_data = nullptr; |
| 50 | } |
| 51 | } |
| 52 | |
| 53 | void CSocketImpl::SyncRead() { |
| 54 | if (!_read_event->_client_socket) { |