phobos/std
Vladimir Panteleev d3f9e24f91 std.file: Fix race condition when mkdirRecurse runs concurrently
mkdirRecurse would crash if a directory was created between its
exists() and mkdir() calls. This could occur if mkdirRecurse was called
at the same time from mutiple threads or processes.

Instead of relying on the exists() check to indicate whether the next
mkdir() should succeed, we explicitly ignore "already exists" errors
from the OS. Note that this changes the behavior of mkdirRecurse when
the leaf directory already existed: previously it would throw, whereas
now it will silently succeed. The new behavior is conformant with some
other implementations of "recursive mkdir": the -p flag of the GNU
tool, Ruby's mkpath, Java's mkdirs, and Perl's make_path. (On the
other hand, the old behavior was equivalent to the behavior of
Python's makedirs).
2014-01-06 08:36:05 +00:00
..
c add version (Windows): too all windows only sources 2013-07-21 03:34:56 +02:00
digest Turned Examples section in std.digest.* into documented unittest 2013-12-17 13:57:44 +01:00
internal Removed unnecessary allocations in twosComplement call. 2013-12-14 20:08:43 +01:00
net Typo "Protcools" 2014-01-02 21:50:44 -07:00
windows Move various deprecations along. 2013-12-11 23:44:12 -08:00
algorithm.d moved import std.utf : canSearchInCodeUnits; in std.algorithm.find 2014-01-03 22:10:25 +01:00
array.d Fix Issue 6730 2013-12-29 14:26:32 -08:00
ascii.d improve optimization potential of std.ascii 2013-10-16 16:12:46 -07:00
base64.d Merge pull request #1536 from lionello/bug10893 2013-09-08 08:37:19 -07:00
bigint.d Fix name of bitwise operations 2013-12-17 12:54:35 +01:00
bitmanip.d Add unittests for bugs which seem to have been fixed over time. 2013-10-03 10:14:24 -04:00
compiler.d
complex.d Complex.opBinaryRight for numeric types, to allow numeric ^^ complex operations. 2013-12-09 16:18:11 +01:00
concurrency.d enforce thisTid was called before calling receive 2013-09-30 21:45:13 +02:00
container.d Call enforce on the pointer, not the slice 2013-12-18 17:41:37 +11:00
conv.d Use selective local import and place at the head of the required code block 2013-12-26 11:55:06 +09:00
cstream.d Fix issue 10893: added missing or renamed DDoc parameters (found by fix to 10236) 2013-08-31 15:36:29 +08:00
csv.d More implicit array to bool 2013-12-15 19:55:34 +11:00
datetime.d DDoc fixes 2013-12-28 21:28:41 +00:00
demangle.d
encoding.d Merge pull request #891 from Kozzi11/master 2013-12-05 00:30:04 -08:00
exception.d () should be used instead of {} for ddoc macro 2014-01-01 23:03:10 -07:00
file.d std.file: Fix race condition when mkdirRecurse runs concurrently 2014-01-06 08:36:05 +00:00
format.d Merge pull request #1766 from jmdavis/deprecations 2013-12-19 23:33:47 +01:00
functional.d
getopt.d Fix issue 11764 2013-12-18 12:17:19 -08:00
json.d Merge pull request #1694 from John-Colvin/patch-5 2013-12-16 05:20:02 +01:00
math.d localize std.range import 2013-12-20 01:23:51 +01:00
mathspecial.d
metastrings.d
mmfile.d Remove cases where an array is used in a boolean context 2013-11-27 18:23:07 +11:00
numeric.d Fix missed cases of <>= operator 2013-12-01 16:31:47 +11:00
outbuffer.d fix Issue 10644 - Win64: wrong code when passing arguments through ... 2013-07-19 14:17:32 -07:00
parallelism.d Merge branch 'master' of github.com:D-Programming-Language/phobos into fewer-imports 2013-12-22 22:20:24 -08:00
path.d fix Issue 11691 - can't join pathSplitter with pathSeparator 2013-12-05 15:22:01 +01:00
process.d Better unittests in process.d 2013-12-22 23:04:16 -08:00
random.d Merge pull request #1717 from Zshazz/issue_11598 2013-12-16 05:24:20 -08:00
range.d Merge pull request #1809 from monarchdodra/traitsImport 2013-12-30 10:04:28 -08:00
regex.d std.regex: double 'l' in Cyrillic 2014-01-04 23:01:26 +03:00
signals.d
socket.d Move various deprecations along. 2013-12-11 23:44:12 -08:00
socketstream.d
stdint.d
stdio.d fix more import insufficiency 2013-12-30 17:30:26 +09:00
stdiobase.d
stream.d Updates MemoryStream.reserve DDOC 2013-10-27 15:54:24 +11:00
string.d DDoc fixes 2013-12-28 21:28:41 +00:00
syserror.d
system.d
traits.d Merge pull request #1827 from WalterBright/add-opCmp 2014-01-01 00:00:44 -08:00
typecons.d Add more necessary local imports 2013-12-26 11:55:18 +09:00
typelist.d
typetuple.d Remove typetuple dependencies 2013-12-22 17:07:32 +01:00
uni.d Add import declarations for issue 313 & 314 2013-12-24 09:39:21 +09:00
uri.d Fix cases where goto skips initialization of variables 2013-11-20 00:20:33 +11:00
utf.d fix more import insufficiency 2013-12-30 17:30:26 +09:00
uuid.d Cleanup uuid 2013-11-23 17:58:57 +01:00
variant.d fix usage of Type.prop in typeof expressions 2013-12-01 21:32:32 +01:00
xml.d Remove cases where an array is used in a boolean context 2013-11-27 18:23:07 +11:00
zip.d fix Issue 11831 - std.zip no longer allows setting madeVersion field 2013-12-28 02:55:28 +01:00
zlib.d Fix issue 10893: added missing or renamed DDoc parameters (found by fix to 10236) 2013-08-31 15:36:29 +08:00