diff options
author | Lukas Larsson <[email protected]> | 2014-02-23 17:00:41 +0100 |
---|---|---|
committer | Lukas Larsson <[email protected]> | 2014-02-24 15:15:56 +0100 |
commit | c743ed359f16f791dd15b58b86af7f77db4799aa (patch) | |
tree | cf5bc15589f8f154fb2439af0506e9614befa6aa | |
parent | 48201abc7961b44be9e5cf0feb74d18a399d6099 (diff) | |
download | otp-c743ed359f16f791dd15b58b86af7f77db4799aa.tar.gz otp-c743ed359f16f791dd15b58b86af7f77db4799aa.tar.bz2 otp-c743ed359f16f791dd15b58b86af7f77db4799aa.zip |
ose: Force atleast one async thread for ose
This is needed because a file has to be opened and operated on
in the same process at all times. Using async threads guarantee this.
-rw-r--r-- | erts/emulator/beam/erl_init.c | 2 | ||||
-rw-r--r-- | erts/emulator/sys/ose/erl_ose_sys.h | 5 | ||||
-rw-r--r-- | erts/emulator/sys/unix/erl_unix_sys.h | 5 | ||||
-rw-r--r-- | erts/emulator/sys/win32/erl_win_sys.h | 4 |
4 files changed, 15 insertions, 1 deletions
diff --git a/erts/emulator/beam/erl_init.c b/erts/emulator/beam/erl_init.c index c17256f466..e2227e8de4 100644 --- a/erts/emulator/beam/erl_init.c +++ b/erts/emulator/beam/erl_init.c @@ -780,7 +780,7 @@ early_init(int *argc, char **argv) /* case 'A': { /* set number of threads in thread pool */ char *arg = get_arg(argv[i]+2, argv[i+1], &i); - if (((erts_async_max_threads = atoi(arg)) < 0) || + if (((erts_async_max_threads = atoi(arg)) < ERTS_MIN_NO_OF_ASYNC_THREADS) || (erts_async_max_threads > ERTS_MAX_NO_OF_ASYNC_THREADS)) { erts_fprintf(stderr, "bad number of async threads %s\n", diff --git a/erts/emulator/sys/ose/erl_ose_sys.h b/erts/emulator/sys/ose/erl_ose_sys.h index 94f1e58883..5243886bac 100644 --- a/erts/emulator/sys/ose/erl_ose_sys.h +++ b/erts/emulator/sys/ose/erl_ose_sys.h @@ -70,6 +70,11 @@ struct erts_sys_fd_type { /* + * Min number of async threads + */ +#define ERTS_MIN_NO_OF_ASYNC_THREADS 1 + +/* * Our own type of "FD's" */ #define ERTS_SYS_FD_TYPE struct erts_sys_fd_type* diff --git a/erts/emulator/sys/unix/erl_unix_sys.h b/erts/emulator/sys/unix/erl_unix_sys.h index 2c47aa06c2..176fc049a7 100644 --- a/erts/emulator/sys/unix/erl_unix_sys.h +++ b/erts/emulator/sys/unix/erl_unix_sys.h @@ -127,6 +127,11 @@ # endif #endif +/* + * Min number of async threads + */ +#define ERTS_MIN_NO_OF_ASYNC_THREADS 0 + /* File descriptors are numbers anc consecutively allocated on Unix */ #define ERTS_SYS_CONTINOUS_FD_NUMBERS diff --git a/erts/emulator/sys/win32/erl_win_sys.h b/erts/emulator/sys/win32/erl_win_sys.h index 0deb097b1a..8015e8f378 100644 --- a/erts/emulator/sys/win32/erl_win_sys.h +++ b/erts/emulator/sys/win32/erl_win_sys.h @@ -103,6 +103,10 @@ #define CreateAutoEvent(state) CreateEvent(NULL, FALSE, state, NULL) #define CreateManualEvent(state) CreateEvent(NULL, TRUE, state, NULL) +/* + * Min number of async threads + */ +#define ERTS_MIN_NO_OF_ASYNC_THREADS 0 /* * Our own type of "FD's" |