First, yes, that's one of the problems with `spawn`: I don't know what thread 
I'm on. That limits the value of _threadpool_.

But my crashes are gone when I stop using thread-local `nre.Regex`. Now I 
create it locally always. A bit expensive, but safe. I've also dropped my other 
thread-local var. So thread-local is not the main problem for me.

My problems are runtime on Linux, and memory in general. Maybe memory 
allocation harms runtime, so I'd like to solve memory first. The problem is, 
when I print all, occupied, and free memory, I see all and free grow almost 
continuously. I've tried capping available memory (including virtual memory) 
with `ulimit`. Nothing I've tried has helped.

This happens even single-threaded. It's not a "leak", since "occupied memory" 
is stable. I have no runtime errors in debug-mode, and I've gotten rid of 
calloc everywhere in my code.

So far, I've been unable to produce a small test-case which reproduces the 
problem. I'll keep trying to repro with a small example this weekend. But here 
is my main question: When freelists are re-used in the default memory manager?

I could use a way to dump freelist sizes. Would that be a fair request on 
GitHub?

Reply via email to