summaryrefslogtreecommitdiff
path: root/win32/win32.c
diff options
context:
space:
mode:
Diffstat (limited to 'win32/win32.c')
-rw-r--r--win32/win32.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/win32/win32.c b/win32/win32.c
index f9333d0283..f2129afac8 100644
--- a/win32/win32.c
+++ b/win32/win32.c
@@ -2310,6 +2310,7 @@ rb_w32_accept(int s, struct sockaddr *addr, int *addrlen)
MTHREAD_ONLY(EnterCriticalSection(&(_pioinfo(fd)->lock)));
_set_osfhnd(fd, r);
MTHREAD_ONLY(LeaveCriticalSection(&_pioinfo(fd)->lock));
+ CloseHandle(h);
st_insert(socklist, (st_data_t)r, (st_data_t)0);
}
else {
@@ -2318,6 +2319,8 @@ rb_w32_accept(int s, struct sockaddr *addr, int *addrlen)
fd = -1;
}
}
+ else
+ CloseHandle(h);
});
return fd;
}