
Hi, between the lines of the "copy on write" thread I found to read the statement: "There are threads in a program, so everything has to thread-safe." I believe this is not exactly true. In fact, the need for "wild & freestyle" shared read/write access most often indicates poor software design. Another closely related statement is something like: "Dynamic memory allocation always needs synchronization." Not necessarily. Not unless memory management is done globally. I know, the language isn't very supportive in this field. But it brings me to a question which has been on my mind for quite some time and I never found the time to ask: "Why aren't there more Boost components to customize memory management ?" If there was a way for me to express e.g. "these objects are very likely to get reallocated with different sizes, so leave some space" for a string buffer pool or "give me a custom heap allocator" for for thread specific data, it would increase my willingness to do so and a few seconds of typing for a significant ammount of performance is generally a good deal. The downside is, that it is unlikely to be possible to find an error-proof design (one whithout traps only detectable at runtime, that is - e.g. providing a standard allocator based on object_pool in Boost.Pool). However, I don't think requiring a debug session from a user who's ignoring advise from the documentation should stop any efforts in this direction. Anything in the pipeline (perhaps further development of Boost.Pool) ? Any others interested in this ? Am I missing something ? Volunteers ? Regards, Tobias