| 210 | } |
| 211 | |
| 212 | void xs_tcp_destructor(void *data) |
| 213 | { |
| 214 | TCP tcp = data; |
| 215 | if (!tcp) return; |
| 216 | |
| 217 | if (tcp->task) { |
| 218 | modTimerRemove(tcp->task); |
| 219 | tcp->task = NULL; |
| 220 | } |
| 221 | |
| 222 | if (tcp->skt >= 0) { |
| 223 | closesocket(tcp->skt); |
| 224 | tcp->skt = INVALID_SOCKET; |
| 225 | } |
| 226 | |
| 227 | free(tcp); |
| 228 | |
| 229 | modInstrumentationAdjust(NetworkSockets, -1); |
| 230 | } |
| 231 | |
| 232 | void doClose(xsMachine *the, xsSlot *instance) |
| 233 | { |
no test coverage detected