Am 13.01.2007 um 06:17 schrieb Mike:
I downloaded the code in the previous mail. After some minor path adjustments, I was able to get the test program to compile and link under FreeBSD 6.1 running on a dual-processor PIII system, linked against a threaded tcl 8.5a. I could get this program to consistently do one of two things: - dump core - hang seemingly forever but absolutely nothing else. Running this program under the latest version of valgrind (using memcheck or helgrind tools) reveals numerous errors from valgrind, which I suspect (although I did not confirm) are the reason for the core dumps and infinite hangs when it is run on its own.
Hey, it is the first time *ever* it got to the public, so do not expect mission-critical bullet-proof code! No wonder there are still errors there, but those are to be fixed, of course. After all, at least two persons (myself and Vlad) are going to include this work in production system(s). So it needs much tests, of course Thank you for taking a look at it. If you'd like to help a bit... compile the Tcl with --enable-symbols and hit it again until it crashes. Then inspect the core with the debugger and give me the stack trace of the crashing thread. And, generally speaking... I would not spent time on that if that's avoidable. Show me a good memory conservative allocator that is fast enough and returns memory to the system and works accross Linux, Solaris, Mac OSX and Windows? To my knowledge, there is none. During all this (testing and developing) time, I found the Solaris alloc to be the most-appropriate, but still, this one also grabs all the memory it can and never releases it back! So, the question is not that I'd like some exercise in writing memory allocators. I don't. I have *plenty* of other work on my back. But we happen to have a product out there (already 1000+ installations worldwide) that needs a reboot each day because of the way it consumes system memory. Not leaks. Regular consumption. So I have a very pressing need to undertake something in this direction, if you understand what I mean. Now if you can get me some debug data from your box so I can check what is going on, that would be very nice! Cheers Zoran