[Ecls-list] Threaded MSVC broken.

Samium Gromoff _deepfire at feelingofgreen.ru
Thu Jun 26 10:47:30 UTC 2008


From: Samium Gromoff <_deepfire at feelingofgreen.ru>
Subject: Re: [Ecls-list] Threaded MSVC broken.
Date: Thu, 26 Jun 2008 14:39:20 +0400 (MSD)

> 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)).

The reverse part fails with "Too many heap sections", but it remains
to be seen if this is specific to the threaded version..


regards, Samium Gromoff




More information about the ecl-devel mailing list