implement iter_pool_do, it costs 5 or 6 hours