summaryrefslogtreecommitdiffstats
path: root/otherlibs/win32unix/channels.c
diff options
context:
space:
mode:
authorDamien Doligez <damien.doligez-inria.fr>2010-01-20 16:26:46 +0000
committerDamien Doligez <damien.doligez-inria.fr>2010-01-20 16:26:46 +0000
commitbdc0fadee2dc9669818955486b4c3497016edda5 (patch)
tree48047d836d903e84f7e0ae6d74613c2247c4fc81 /otherlibs/win32unix/channels.c
parent8cd4fc63907a541d05f31a740632948d453f69f9 (diff)
merge changes from release/3.11.1 to release/3.11.2
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@9540 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'otherlibs/win32unix/channels.c')
-rw-r--r--otherlibs/win32unix/channels.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/otherlibs/win32unix/channels.c b/otherlibs/win32unix/channels.c
index ed961910b..6e6b10139 100644
--- a/otherlibs/win32unix/channels.c
+++ b/otherlibs/win32unix/channels.c
@@ -82,7 +82,10 @@ CAMLprim value win_filedescr_of_channel(value vchan)
CAMLprim value win_handle_fd(value vfd)
{
int crt_fd = Int_val(vfd);
- value res = win_alloc_handle_or_socket((HANDLE) _get_osfhandle(crt_fd));
+ /* PR#4750: do not use the _or_socket variant as it can cause performance
+ degradation and this function is only used with the standard
+ handles 0, 1, 2, which are not sockets. */
+ value res = win_alloc_handle((HANDLE) _get_osfhandle(crt_fd));
CRT_fd_val(res) = crt_fd;
return res;
}