Change Log 0.2.5 - Made threadpool compatible to boost::thread 1.37 - Fixed hang problem in shutdown method (Thanks to Sohail Somani) - Adapted repository layout to boost (Thanks to Alex Ott) 0.2.4 (Stable) - Made threadpool compatible to boost::thread 1.35.x code base - Fixed compiler warning in scope_guard.hpp 0.2.3 (Development) - Implemented workaround for Sun C++ Pro compiler bug in pool_core - Removed subtask implementation (there was no demand for this feature) - Improved shutdown policies 0.2.2 (Development) - Refactored SizePolicy and added SizePolicyController - Moved policies into separate files - Fixed some compiler problems (GCC) - Implemented size_controller handling - Implemented two size policies: static_size and fixed_size - Refactored worker_thread handling, moved policies from pool_core to pool - Specialized schedule function for usage with futures - Added compile test project - Improved constness in pool core class - Fixed timed wait - Implemented futures (in progress) - Added result_type to all functors 0.2.1 (Development) - Pool base class (thread_pool) has now reference semantics - Large refactorings: Removed scoped_pool, reimplemented worker (now worker_thread) - Fixed odd resize behaviour. Now resize changes the number of threads immediately - Apply pimpl idiom on pool core class (to make the ugly scoped_pool class needless) - Introduced scheduling policies - Switched to policy-based design (PBD), inspired by Scott Meyers C++ workshop - Cosmetic code change: Replaced keyword 'class' with 'typename' in template definitions - Revised tutorials - New requirements: tasks functions should not and schedulers shall not throw exceptions 0.2.0 (Development) - Moved threadpool into the boost namespace: boost::threadpool - Used keyword volatile to indicate thread-safe member functions - Used volatile on primitve types were appropriate - Moved worker to detail directory - Fixed thread deletion - Extended wait functionality (waiting for idle threads was implemented) - Renamed 'join()' to 'wait()' as 'join' indicates the termination of thread. That was not the case in pool::join. - Changed internal container of lifo and fifo schedulers to improve efficiency. - Improved code reference documentation (source code browser) - Renamed thread_func into task_func - Added += operator to scoped_pool to ease scheduling of tasks - Refactored file structures and class names - Added a new task concept (named subtask) which allows the combination of sequential and parallel execution - Added new task adaptor for looped or timed tasks: looped_task_func - Introduced function clear() which can be used to remove all tasks from the pool and schedulers - New function pool::active() which returns the number of active tasks 0.1.8 (Development) - Fixed some compile errors which were reported by gcc - Wrote tutorial "Prioritized Tasks" 0.1.7 (Development) - Added Visual Studio 2005 project files for tutorial and examples 0.1.6 (Development) - Replaced task adaptor 'task' with boost::bind - Workers are unregistered from thread_group when they are terminated - Working on example boost::iostreams packet_filter 0.1.5 (Development) - Finished threadpool reference - Class pool_adaptor was replaced by smart_pool - Minor pool improvements - First tutorial page online 0.1.4 (Development) - Created the pool's homepage: http://threadpool.sourceforge.net - Improved documentation - Added build scripts 0.1.3 (Development) - First public release - Added mergesort example - Added tutorial - Implementation of threadpool core and related classes