From 192440ab1fdad0f3924f7af8c6f0dbc4f47f70b1 Mon Sep 17 00:00:00 2001 From: Lukas Larsson Date: Mon, 25 Feb 2013 15:38:55 +0100 Subject: Set default max ports on win32 to 8192 --- erts/doc/src/erl.xml | 2 ++ erts/emulator/beam/erl_port.h | 11 +++++++++++ 2 files changed, 13 insertions(+) diff --git a/erts/doc/src/erl.xml b/erts/doc/src/erl.xml index bd03fb4970..bb81330fec 100644 --- a/erts/doc/src/erl.xml +++ b/erts/doc/src/erl.xml @@ -665,6 +665,8 @@ than 65536, the chosen value will increased to a value larger or equal to the maximum amount of file descriptors that can be opened.

+

On Windows the default value is set to 8196 because the + normal OS limitations are set higher than most machines can handle.

Previously the environment variable ERL_MAX_PORTS was used for setting the maximum number of simultaneously existing ports. This environment variable is deprecated, and scheduled for removal in diff --git a/erts/emulator/beam/erl_port.h b/erts/emulator/beam/erl_port.h index 4052f4dbe8..377aa72ed5 100644 --- a/erts/emulator/beam/erl_port.h +++ b/erts/emulator/beam/erl_port.h @@ -31,7 +31,18 @@ typedef struct ErtsProc2PortSigData_ ErtsProc2PortSigData; #include "erl_thr_progress.h" #include "erl_trace.h" +#ifndef __WIN32__ #define ERTS_DEFAULT_MAX_PORTS (1 << 16) +#else +/* + * Do not default to as many max ports on Windows + * as there are no os limits to stop system + * from running amok. If allowed to go too high + * windows rarely recovers from the errors and + * other OS processes can be effected. + */ +#define ERTS_DEFAULT_MAX_PORTS (1 << 13) +#endif /* __WIN32__ */ #define ERTS_MIN_PORTS 1024 extern int erts_port_synchronous_ops; -- cgit v1.2.3