Update: remove SIGINT. finish() use retval.