1,2,3を混ぜたい時はどうするんだ?
単一の巡回呼び出しでは呼べないぞ、それじゃ。

というか、3は明らかに不要だろ。
taskの更新処理は1と2以外にないだろ。