monitor.d and critical.d?

%u wfunction at hotmail.com
Tue Feb 1 17:07:40 PST 2011


> > Please add as a patch to bug 4332.
> Cool, I added the attachments!

On a second thought, this is a bit trickier than I'd thought, since it's not
working without additional modifications that I at first thought were unnecessary.

Did the C version run any sort of "static constructors" during the loading of the
runtime on Windows? For some reason, when I replace the C version with the D
version, I am forced to remove the version statement from here:

    void _d_criticalInit()
    {
        version (Posix)
        {
            _STI_monitor_staticctor();
            _STI_critical_init();
        }
    }

in order to run the static constructors, even though it doesn't seem like the C
code would've been any different in this regard.

Does anyone know why this is needed?


More information about the Digitalmars-d mailing list