use boost::pool to implement a new ObjectPool, add ProgressTimer