長い計算を中断したくて、途中までの計算結果も無駄にしたくないってことなら、
シグナルで処理するのがよくね?