This is a very heavy question! Creating a pool takes a lot of resources. If this is a server program that creates a new thread for every new client, you can create a pool for every thread, but you have to make shore that the lifetime of all your objects for this client is ended before the thread is dead. Object that there lifetime are from the beginning until the and of the process has to use one single pool.
Object that there lifetime is more the then thread but not forever have to use there on pool. You have to make deferent constructors for objects that you cannot tell how they will work (with receiving pool * or generating there pool by them self) If you will not work on this carefully you will have memory likes or you program will not be able to handle many clients! Dror Shilo Ericom Software -----Original Message----- From: David Barrett [mailto:[EMAIL PROTECTED] Sent: Friday, October 08, 2004 5:56 AM To: dev@apr.apache.org Subject: Pools, C++, and Exceptions Best Practices Is anyone in the audience using apr pools in a C++ application? Can you point to any sample code showing how to override 'new' and 'delete' (or manually invoke constructors and destructors) to manage objects within a pool? Right now I have an ugly mix of pools for apr objects and heap for C++ objects, and I'd prefer to use apr pools exclusively. I'm thinking pools might complement structured exception handling very well: create a sub-pool before each 'try' block, and destroy it in the 'catch' block if an exception is thrown. In theory, this would ensure that whatever data allocated up to the point the exception was thrown would be safely cleaned up. Alternatively, do you have any suggestions on how best to use pools with C++? Currently I'm just creating a pool for each object in its constructor, and destroying it in the destructor. Am I on the right track? -david