[D-runtime] druntime fixes again break Windows DLL support

Sean Kelly sean at invisibleduck.org
Wed Apr 20 07:22:50 PDT 2011


The helper modules were moved to core.sys.windows. I prepended an underscore because I thought they'd be for internal use. Alternate suggestions welcome. 

Sent from my iPhone

On Apr 19, 2011, at 11:55 PM, Don Clugston <dclugston at googlemail.com> wrote:

> On 20 April 2011 08:47, Rainer Schuetze <r.sagitario at gmx.de> wrote:
>> 
>> 
>> Don Clugston wrote:
>>> 
>>> I've also had problems with DLLs in the git version of druntime.
>>> When I use Runtime.initialize() in a thread, in a DLL which was
>>> dynamically loaded, it crashes. I haven't traced into it, but it feels
>>> like exactly the same behaviour I saw when TLS wasn't initialized.
>>> Almost as if something in the runtime is using a TLS variable before
>>> initialization has happened.
>> 
>> Recently, I also started creating threads in a DLL, and that revealed a few
>> inconsistencies between dll_helper.d and thread.d. The major problem is that
>> DLLMain is called before the thread is added to the list of library created
>> threads, causing initialization to be done twice.
>> I have a patch for this, but I'm not yet on the latest git-version. I'll try
>> to update the bugzilla entry
>> http://d.puremagic.com/issues/show_bug.cgi?id=5582 with it and maybe even
>> create a pull request.
>> 
>> 
>>> I also notice that the docs in 2.052 had an inconsistency: the first
>>> example used dll_helper, the later ones use Runtime.initialize().
>> 
>> When updating the DLL init code, I also changed the "DLLs with a C
>> Interface" part in the docs, but as I'm not convinced that the approach used
>> by "D code calling D code in DLLs" is good enough, I left it as is. My
>> suggestion here would be to use a common phobos.DLL to share all runtime
>> library functions including the GC (as shown here:
>> http://d.puremagic.com/issues/show_bug.cgi?id=4071 )
> 
> The "DLLs with a C interface" part imports core.dll_helper, which no
> longer exists. What should it be now?
> _______________________________________________
> D-runtime mailing list
> D-runtime at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/d-runtime


More information about the D-runtime mailing list