I have been experimenting with POCO C++ Libraries v1.3.2. I like it very much. The design is very clean, and it works well. Thank you for publishing POCO as open source.

I experimented first with the XML and SQLite integration with good success.

Now I am experimenting with ThreadPool, FastMutex, and NotificationQueue. This is a separate test program without the use of XML or SQLite. It just creates some number of threads and the threads then send each other messages as fast as possible so I can benchmark the performance.

This thread test program also runs successfully, but I noticed that if I use 'pmap' under FC8 Linux to inspect the runtime memory footprint, each thread has reserved 10 MB of memory. With 64 threads, this results in a 660 MB allocation of virtual memory:

The allocation occurs at startup, and does not increase over time, so this does not feel like a memory leak. The 10 MB per thread allocation occurs for each potential thread in the ThreadPool size, even if a Runnable class is not started for each thread.

Is this large allocation of virtual memory, 10 MB per thread, expected? Is there any API function I can use to tune this?

> > Is this large allocation of virtual memory, 10 MB per thread, expected? Is there any API function I can use to tune this?

> 8-10 MB seems to be the current default for Linux. There's no API yet, but I just submitted a patch to provide (get|set)StackSize on Thread. I presume this API could be extended to ThreadPool as well.

This has just been freshly submitted in the repository trunk. I just wrote and ran some basic tests. I'd be curious to hear how it works in a real world scenario.