> No, it returns the new value so at least for one threads this will return 1.

But the **first** thread that calls `rt_init` will exit early. Look:

```D
import core.atomic;
import core.thread;
import std.concurrency;
import std.stdio;

shared int _initCount;

void test(int threadID)
{
    if (atomicOp!"+="(_initCount, 1) == 1)
        return;

    writeln(threadID);
}

void main()
{
    spawn(&test, 1);
    spawn(&test, 2);
    thread_joinAll();
}
```

Outputs:

```
2
```

What if `rt_init` is ever called from only one thread? The init routines would never be called.