aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_init.c
diff options
context:
space:
mode:
authorRickard Green <rickard@erlang.org>2011-10-09 01:00:51 +0200
committerRickard Green <rickard@erlang.org>2011-11-13 20:40:57 +0100
commit9bed74c6b44f691c7c6572ec2c9f57219d8894a6 (patch)
tree55d10811da3b4e0bb8aa22aeea50112cb846149b /erts/emulator/beam/erl_init.c
parentbc5818cfdd56e19a16357f4443d80a56426aa134 (diff)
downloadotp-9bed74c6b44f691c7c6572ec2c9f57219d8894a6.tar.gz
otp-9bed74c6b44f691c7c6572ec2c9f57219d8894a6.tar.bz2
otp-9bed74c6b44f691c7c6572ec2c9f57219d8894a6.zip
Implement generic lock-free queue
The implementation of an ERTS internal, generic, many to one, lock-free queue for communication between threads. The many to one scenario is very common in ERTS, so it can be used in a lot of places in the future. Changing to this queue from a lock based queue, however, often requires some redesigning. This since we have often used the lock of the queue to protect other information too.
Diffstat (limited to 'erts/emulator/beam/erl_init.c')
-rw-r--r--erts/emulator/beam/erl_init.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/erts/emulator/beam/erl_init.c b/erts/emulator/beam/erl_init.c
index f4f2a4d011..5fe44afdce 100644
--- a/erts/emulator/beam/erl_init.c
+++ b/erts/emulator/beam/erl_init.c
@@ -43,6 +43,7 @@
#include "packet_parser.h"
#include "erl_cpu_topology.h"
#include "erl_thr_progress.h"
+#include "erl_thr_queue.h"
#ifdef HIPE
#include "hipe_mode_switch.h" /* for hipe_mode_switch_init() */
@@ -786,6 +787,7 @@ early_init(int *argc, char **argv) /*
*/
erts_thr_progress_init(no_schedulers, no_schedulers+1, 0);
#endif
+ erts_thr_q_init();
erts_init_utils();
erts_early_init_cpu_topology(no_schedulers,
&max_main_threads,