aboutsummaryrefslogtreecommitdiffstats
path: root/erts
diff options
context:
space:
mode:
Diffstat (limited to 'erts')
-rw-r--r--erts/autoconf/vxworks/sed.general2
-rw-r--r--erts/autoconf/vxworks/sed.vxworks_ppc324
-rw-r--r--erts/autoconf/vxworks/sed.vxworks_simlinux5
-rw-r--r--erts/autoconf/vxworks/sed.vxworks_simso4
-rw-r--r--erts/doc/src/erl.xml2
-rw-r--r--erts/emulator/beam/erl_init.c6
-rw-r--r--erts/emulator/beam/erl_port.h11
7 files changed, 33 insertions, 1 deletions
diff --git a/erts/autoconf/vxworks/sed.general b/erts/autoconf/vxworks/sed.general
index 162fd38c2b..e2d2f415f1 100644
--- a/erts/autoconf/vxworks/sed.general
+++ b/erts/autoconf/vxworks/sed.general
@@ -31,6 +31,7 @@ s|^#undef SIZEOF_SHORT|#define SIZEOF_SHORT 2|
s|^#undef SIZEOF_INT|#define SIZEOF_INT 4|
s|^#undef SIZEOF_LONG_LONG|#define SIZEOF_LONG_LONG 8|
s|^#undef SIZEOF_LONG$|#define SIZEOF_LONG 4|
+s|^#undef SIZEOF_VOID_P$|#define SIZEOF_VOID_P 4|
# General stuff.
s|@erts_rootdir@|/clearcase/otp/erts|
@@ -93,7 +94,6 @@ s|@TTPREFIX@|GCC_EXEC_PREFIX=@WIND_BASE@/host/@HOST_TYPE@/lib/gcc-lib/ @WIND_BAS
# Install programs etc
s|@PERL@|perl|
-s|@INSTALL@|/usr/ucb/install -c|
s|@INSTALL_PROGRAM@|${INSTALL}|
s|@INSTALL_SCRIPT@|${INSTALL}|
s|@INSTALL_DATA@|${INSTALL} -m 644|
diff --git a/erts/autoconf/vxworks/sed.vxworks_ppc32 b/erts/autoconf/vxworks/sed.vxworks_ppc32
index 5db28337c0..48ec912b4f 100644
--- a/erts/autoconf/vxworks/sed.vxworks_ppc32
+++ b/erts/autoconf/vxworks/sed.vxworks_ppc32
@@ -23,6 +23,10 @@
#
#
#
+# Install programs etc
+s|@INSTALL@|/usr/bin/install -c|
+
+# other
s|@host@|vxworks_ppc32|
s|@system_type@|vxworks_ppc32|
s|@ARCH@|ppc32|
diff --git a/erts/autoconf/vxworks/sed.vxworks_simlinux b/erts/autoconf/vxworks/sed.vxworks_simlinux
index 6eb6f8ea92..fbf6d7bc9d 100644
--- a/erts/autoconf/vxworks/sed.vxworks_simlinux
+++ b/erts/autoconf/vxworks/sed.vxworks_simlinux
@@ -23,6 +23,11 @@
#
#
#
+#
+# Install programs etc
+s|@INSTALL@|/usr/bin/install -c|
+
+# other
s|@host@|vxworks_simlinux|
s|@system_type@|vxworks_simlinux|
s|@ARCH@|simlinux|
diff --git a/erts/autoconf/vxworks/sed.vxworks_simso b/erts/autoconf/vxworks/sed.vxworks_simso
index 1d7413b484..17ec092dee 100644
--- a/erts/autoconf/vxworks/sed.vxworks_simso
+++ b/erts/autoconf/vxworks/sed.vxworks_simso
@@ -23,6 +23,10 @@
#
#
#
+# Install programs etc
+s|@INSTALL@|/usr/ucb/install -c|
+
+# other
s|@host@|vxworks_simso|
s|@system_type@|vxworks_simso|
s|@ARCH@|simso|
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 <c>65536</c>, the chosen value will increased to a value
larger or equal to the maximum amount of file descriptors that
can be opened.</p>
+ <p>On Windows the default value is set to <c>8196</c> because the
+ normal OS limitations are set higher than most machines can handle.</p>
<p>Previously the environment variable <c>ERL_MAX_PORTS</c> 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_init.c b/erts/emulator/beam/erl_init.c
index 83853dcd43..e7e4030900 100644
--- a/erts/emulator/beam/erl_init.c
+++ b/erts/emulator/beam/erl_init.c
@@ -935,6 +935,12 @@ erl_start(int argc, char **argv)
(erts_aint32_t) max_gen_gcs);
}
+ envbufsz = sizeof(envbuf);
+ if (erts_sys_getenv_raw("ERL_MAX_PORTS", envbuf, &envbufsz) == 0) {
+ port_tab_sz = atoi(envbuf);
+ port_tab_sz_ignore_files = 1;
+ }
+
#if (defined(__APPLE__) && defined(__MACH__)) || defined(__DARWIN__)
/*
* The default stack size on MacOS X is too small for pcre.
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;