diff --git a/index.d b/index.d index 905ebf3cbbf..52fed13c351 100644 --- a/index.d +++ b/index.d @@ -461,7 +461,6 @@ $(COMMENT $(TR $(TDNW $(LINK2 core_sync_config.html, core.sync.config)$(BR) - $(LINK2 std_concurrencybase.html, std.concurrencybase)$(BR) $(LINK2 std_container_util.html, std.container.util)$(BR) $(LINK2 std_regex_internal_backtracking.html, std.regex.internal.backtracking)$(BR) $(LINK2 std_regex_internal_generator.html, std.regex.internal.generator)$(BR) diff --git a/posix.mak b/posix.mak index 4e7e5eab1dc..bb58c4e873e 100644 --- a/posix.mak +++ b/posix.mak @@ -219,7 +219,7 @@ EXTRA_MODULES_COMMON := $(addprefix etc/c/,curl odbc/sql odbc/sqlext \ EXTRA_DOCUMENTABLES := $(EXTRA_MODULES_LINUX) $(EXTRA_MODULES_WIN32) $(EXTRA_MODULES_COMMON) EXTRA_MODULES_INTERNAL := $(addprefix std/, \ - algorithm/internal concurrencybase \ + algorithm/internal \ $(addprefix internal/, \ cstring digest/sha_SSSE3 \ $(addprefix math/, biguintcore biguintnoasm biguintx86 \ diff --git a/std/concurrency.d b/std/concurrency.d index 44b9d8f8285..d02bcd16844 100644 --- a/std/concurrency.d +++ b/std/concurrency.d @@ -69,7 +69,6 @@ import core.atomic; import core.sync.condition; import core.sync.mutex; import core.thread; -import std.concurrencybase; import std.range.primitives; import std.traits; @@ -910,12 +909,13 @@ private { __gshared Tid[string] tidByName; __gshared string[][Tid] namesByTid; - __gshared Mutex registryLock; } -extern (C) void std_concurrency_static_this() +private @property Mutex registryLock() { - registryLock = new Mutex; + __gshared Mutex impl; + initOnce!impl(new Mutex); + return impl; } private void unregisterMe() diff --git a/std/concurrencybase.d b/std/concurrencybase.d deleted file mode 100644 index 2d26d8e4009..00000000000 --- a/std/concurrencybase.d +++ /dev/null @@ -1,20 +0,0 @@ -// Written in the D programming language. - -/** - * The only purpose of this module is to do the static construction for - * std.concurrency, to eliminate cyclic construction errors. - * - * License: $(HTTP www.boost.org/LICENSE_1_0.txt, Boost License 1.0). - * Source: $(PHOBOSSRC std/_concurrencybase.d) - */ -module std.concurrencybase; - -import core.sync.mutex; - -extern(C) void std_concurrency_static_this(); - -shared static this() -{ - std_concurrency_static_this(); -} - diff --git a/win32.mak b/win32.mak index 854ed9a6a6d..ee7716a177f 100644 --- a/win32.mak +++ b/win32.mak @@ -146,8 +146,7 @@ SRC_STD_3a= \ std\exception.d \ std\compiler.d \ std\system.d \ - std\concurrency.d \ - std\concurrencybase.d + std\concurrency.d SRC_STD_4= \ std\uuid.d @@ -634,7 +633,6 @@ cov : $(SRC_TO_COMPILE) $(LIB) $(DMD) -conf= -cov=79 -unittest -main -run std\random.d $(DMD) -conf= -cov=92 -unittest -main -run std\exception.d $(DMD) -conf= -cov=73 -unittest -main -run std\concurrency.d - $(DMD) -conf= -cov=100 -unittest -main -run std\concurrencybase.d $(DMD) -conf= -cov=95 -unittest -main -run std\datetime\date.d $(DMD) -conf= -cov=95 -unittest -main -run std\datetime\interval.d $(DMD) -conf= -cov=95 -unittest -main -run std\datetime\package.d diff --git a/win64.mak b/win64.mak index 9e59883561d..90fa699b830 100644 --- a/win64.mak +++ b/win64.mak @@ -152,8 +152,7 @@ SRC_STD_3c= \ std\exception.d \ std\compiler.d \ std\system.d \ - std\concurrency.d \ - std\concurrencybase.d + std\concurrency.d SRC_STD_3d= \ std\bitmanip.d \