Index: lib/fuzzer/FuzzerUtilFuchsia.cpp =================================================================== --- lib/fuzzer/FuzzerUtilFuchsia.cpp +++ lib/fuzzer/FuzzerUtilFuchsia.cpp @@ -45,8 +45,16 @@ } void InterruptHandler() { + struct timeval timeout; + timeout.tv_sec= 1; + timeout.tv_usec= 0; + fd_set readfds; // Ctrl-C sends ETX in Zircon. - while (getchar() != 0x03); + do { + FD_ZERO(&readfds); + FD_SET(STDIN_FILENO, &readfds); + select(STDIN_FILENO + 1, &readfds, nullptr, nullptr, &timeout); + } while(!FD_ISSET(STDIN_FILENO, &readfds) || getchar() != 0x03); Fuzzer::StaticInterruptCallback(); }