[Ecls-list] Threaded MSVC broken.
Samium Gromoff
_deepfire at feelingofgreen.ru
Thu Jun 26 10:39:20 UTC 2008
From: "Juan Jose Garcia-Ripoll" <juanjose.garciaripoll at googlemail.com>
> On Thu, Jun 26, 2008 at 5:37 AM, Samium Gromoff
> <_deepfire at feelingofgreen.ru> wrote:
> > I've just looked at the GC's DllMain(), and my uneducated conclusion
> > was that the GC_init() is called as a result of the DLL's init routine,
> > which is initiated by ntdll signalling a PROCESS_ATTACH message to
> > ecl2.exe being started. That is, if we ignore whe whole PROCESS_ATTACH
> > message, the next time we get to deal with GC, is cl_boot(). I think.
>
> The thing is that we probably are not allowed to ignore that message,
> because this routine also registers the main thread with the garbage
> collector. Without this process, the garbage collector will not be
> able to locate data in the running threads. So in short: we cannot get
> rid of that DllMain routine, but we can probably fix it as I mentioned
> before: imposing our own garbage collection flags before the library
> gets initialized.
Preliminary results show that your version of the change seems
to work, even if I thought it wouldn't, for reasons that are no
longer interesting anymore.
I've briefly tested it by a (reverse (make-list 100000000)).
regards, Samium Gromoff
More information about the ecl-devel
mailing list