как такое вообще адекватно делать если у меня какая-то штука в бесконечном цикле крутится, и я хочу по ^C подождать пока закончится текущая итерация, после сделать еще что-то чтобы все завершить, а потом сдохнуть? В голову приходило только городить что-то из MVar и тому подобного руками. Возможно есть уже какое-то стандратное решение для такого?