The race condition between multiple processes is still a problem.
You can use `char name[] = P_tmpdir"/dmd_runXXXXXX"; int fd = mkstemp(name); close(fd);` on Posix and something like [GetTempFileName](http://msdn.microsoft.com/en-us/library/windows/desktop/aa364991(v=vs.85).aspx) on Windows.