Merge branch 'packaged_task'
Use unique_ptr instead of shared_ptr to hold pool_core