From 986549df26eb4dd7f07d137c6715c586a87d9f58 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 26 Jul 2017 02:05:10 -0500 Subject: [PATCH] Fixes global init linux bug by using proc typepath references, adds better error detection (#2137) --- code/controllers/globals.dm | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/code/controllers/globals.dm b/code/controllers/globals.dm index be5250d656..6aca9c1911 100644 --- a/code/controllers/globals.dm +++ b/code/controllers/globals.dm @@ -52,15 +52,18 @@ GLOBAL_REAL(GLOB, /datum/controller/global_vars) /datum/controller/global_vars/Initialize() gvars_datum_init_order = list() gvars_datum_protected_varlist = list("gvars_datum_protected_varlist") - - //See https://github.com/tgstation/tgstation/issues/26954 - for(var/I in typesof(/datum/controller/global_vars/proc)) - var/CLEANBOT_RETURNS = "[I]" - pass(CLEANBOT_RETURNS) - - for(var/I in vars - gvars_datum_in_built_vars) + var/list/global_procs = typesof(/datum/controller/global_vars/proc) + var/expected_len = vars.len - gvars_datum_in_built_vars.len + if(global_procs.len != expected_len) + warning("Unable to detect all global initialization procs! Expected [expected_len] got [global_procs.len]!") + if(global_procs.len) + var/list/expected_global_procs = vars - gvars_datum_in_built_vars + for(var/I in global_procs) + expected_global_procs -= replacetext("[I]", "InitGlobal", "") + log_world("Missing procs: [expected_global_procs.Join(", ")]") + for(var/I in global_procs) var/start_tick = world.time - call(src, "InitGlobal[I]")() + call(src, I)() var/end_tick = world.time if(end_tick - start_tick) - warning("Global [I] slept during initialization!") + warning("Global [replacetext("[I]", "InitGlobal", "")] slept during initialization!")