[Mono-list] Mono static library

Robert Jordan robertj at gmx.net
Tue May 24 17:00:10 EDT 2011


On 24.05.2011 21:06, JarkkoL wrote:
>
> Robert Jordan wrote:
>>
>> Mono/Win32 cannot be linked statically because it relies on Boem GC
>> to register threads, but Boem cannot register threads w/out
>> GC_INSIDE_DLL and DllMain.
>>
> I see, but instead of relying on GC_DllMain() could I explicitly call
> GC_new/delete_thread() when I create/delete threads (directly with win32
> CreateThread(), not with GC_CreateThread) that needs to use the GC?

It won't work unless you also hack GC_thread_is_registered in
libgc/win32_threads.c and maybe other places inside Mono's
runtime.

> I also noticed that GC_CreateThread() seems to call GC_new_thread() already
> anyway to register threads and infact threads created by the function seems
> to be double registered to due to DllMain() registration.

Mono does not use GC_CreateThread.

Robert



More information about the Mono-list mailing list