diff options
author | Rickard Green <[email protected]> | 2016-11-25 15:23:36 +0100 |
---|---|---|
committer | Rickard Green <[email protected]> | 2016-11-25 15:23:36 +0100 |
commit | f8aef2dcae7162b59efb9513442c9643c9f5159e (patch) | |
tree | ab9bd428a532f400923cacc32a7f87ccc9bb70a2 | |
parent | 9e0d9398d51afc7fc6fafbcbd0a6a8bdeeb3802f (diff) | |
parent | ca7578aca806a6eb3e816c918120db78f485f5cb (diff) | |
download | otp-f8aef2dcae7162b59efb9513442c9643c9f5159e.tar.gz otp-f8aef2dcae7162b59efb9513442c9643c9f5159e.tar.bz2 otp-f8aef2dcae7162b59efb9513442c9643c9f5159e.zip |
Merge branch 'rickard/init-bug/OTP-13911' into maint
* rickard/init-bug/OTP-13911:
Fix initialization dependencies between time, lock-check and lcnt
Conflicts:
erts/emulator/sys/unix/sys.c
-rw-r--r-- | erts/emulator/beam/erl_init.c | 3 | ||||
-rw-r--r-- | erts/emulator/beam/erl_lock_count.c | 4 | ||||
-rw-r--r-- | erts/emulator/sys/unix/sys.c | 4 | ||||
-rw-r--r-- | erts/emulator/sys/win32/sys.c | 8 |
4 files changed, 10 insertions, 9 deletions
diff --git a/erts/emulator/beam/erl_init.c b/erts/emulator/beam/erl_init.c index 362239f765..2fd97208cc 100644 --- a/erts/emulator/beam/erl_init.c +++ b/erts/emulator/beam/erl_init.c @@ -795,9 +795,6 @@ early_init(int *argc, char **argv) /* erts_thr_progress_pre_init(); #endif -#ifdef ERTS_ENABLE_LOCK_CHECK - erts_lc_init(); -#endif #ifdef ERTS_SMP erts_smp_atomic32_init_nob(&erts_writing_erl_crash_dump, 0L); erts_tsd_key_create(&erts_is_crash_dumping_key,"erts_is_crash_dumping_key"); diff --git a/erts/emulator/beam/erl_lock_count.c b/erts/emulator/beam/erl_lock_count.c index a00e0f0fff..481e92b2cd 100644 --- a/erts/emulator/beam/erl_lock_count.c +++ b/erts/emulator/beam/erl_lock_count.c @@ -274,11 +274,11 @@ void erts_lcnt_init() { lcnt_unlock(); - /* set start timer and zero statistics */ - erts_lcnt_clear_counters(); } void erts_lcnt_late_init() { + /* set start timer and zero statistics */ + erts_lcnt_clear_counters(); erts_thr_install_exit_handler(erts_lcnt_thread_exit_handler); } diff --git a/erts/emulator/sys/unix/sys.c b/erts/emulator/sys/unix/sys.c index 51366adf1d..4b2edace0a 100644 --- a/erts/emulator/sys/unix/sys.c +++ b/erts/emulator/sys/unix/sys.c @@ -412,6 +412,10 @@ erts_sys_pre_init(void) erts_thr_init(&eid); +#ifdef ERTS_ENABLE_LOCK_CHECK + erts_lc_init(); +#endif + #ifdef ERTS_ENABLE_LOCK_COUNT erts_lcnt_init(); #endif diff --git a/erts/emulator/sys/win32/sys.c b/erts/emulator/sys/win32/sys.c index 404e72d176..f3881e0736 100644 --- a/erts/emulator/sys/win32/sys.c +++ b/erts/emulator/sys/win32/sys.c @@ -3186,16 +3186,16 @@ erts_sys_pre_init(void) eid.thread_create_parent_func = thr_create_cleanup; erts_thr_init(&eid); +#ifdef ERTS_ENABLE_LOCK_CHECK + erts_lc_init(); #endif - - erts_init_sys_time_sup(); - -#ifdef USE_THREADS #ifdef ERTS_ENABLE_LOCK_COUNT erts_lcnt_init(); #endif #endif + erts_init_sys_time_sup(); + erts_smp_atomic_init_nob(&sys_misc_mem_sz, 0); } |