Hello, > OK can you provide further information on your application > I concern your "multithread lock". > > How and where you do intstantiate ROOT. Do you use any other > "third party" > libraries. > ROOT is instanciated in the main (...) like this: int main ( int argc, char** argv) { TROOT simple("GLAST","GLAST Event"); ... } I am also using the ACE library, but 'ACE.h' is not included in the main.cpp file, so that ROOT's static initiation is the only one present there (Normally ACE would like to redefine main). No calls to the ACE library are made in my current example. I also statically link against CLHEP. Everything has been built using the 'Multithreaded DLL' run-time libraries option. > Do you create your "private" DLL to be loaded with root.exe or > you did your own > "ROOT-based" application ? Have you your own therads in there? > I am creating a separate DLL containing a set of ROOT classes which inherit from TObject, then I am linking against that library and instanciating those classes from my application. No new threads are created - looking at the process monitor, I can see only one thread as well. > Anyway I can not image the multithread lock caused by any "new" operator > unless some part of your code was compiled as "single thread" > new itself does nothing special just uses the standard > subroutines to allocate > memory and keep the track of that. (So far we see no complain like yours) > It seems that somehow I am running out of heap (?). I've rebuilt ROOT with debug information thanks to your instructions and I see that eventually the calloc in the new operator call returns 0L when trying to allocate just 20 bytes! This doesn't make much sense since my machine has plenty of memory and disk space for a swap file...any help is appreciated. Thanks again, Sawyer
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:25 MET