diff options
author | Rickey Bowers Jr <bitRAKE@gmail.com> | 2023-03-15 13:56:24 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-15 21:56:24 +0200 |
commit | 2d15d6c9a959749f954d4fbbf44d711e19c5bdff (patch) | |
tree | 5dd46c8c4db09f2d7c7d035d3f54ad6ed099dc56 /main.cpp | |
parent | 2d64715ad475f192a4004a52d134c67ccb6f44ad (diff) |
add SIGINT support for _WIN32 environments (#120)
* add SIGINT support for _WIN32 environments
* perhaps more consistent
Diffstat (limited to 'main.cpp')
-rw-r--r-- | main.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
@@ -14,6 +14,8 @@ #if defined (__unix__) || (defined (__APPLE__) && defined (__MACH__)) #include <signal.h> #include <unistd.h> +#elif defined (_WIN32) +#include <signal.h> #endif #define ANSI_COLOR_RED "\x1b[31m" @@ -755,7 +757,7 @@ bool llama_eval( static bool is_interacting = false; -#if defined (__unix__) || (defined (__APPLE__) && defined (__MACH__)) +#if defined (__unix__) || (defined (__APPLE__) && defined (__MACH__)) || defined (_WIN32) void sigint_handler(int signo) { printf(ANSI_COLOR_RESET); if (signo == SIGINT) { @@ -865,6 +867,8 @@ int main(int argc, char ** argv) { sigemptyset (&sigint_action.sa_mask); sigint_action.sa_flags = 0; sigaction(SIGINT, &sigint_action, NULL); +#elif defined (_WIN32) + signal(SIGINT, sigint_handler); #endif fprintf(stderr, "%s: interactive mode on.\n", __func__); @@ -894,7 +898,7 @@ int main(int argc, char ** argv) { if (params.interactive) { fprintf(stderr, "== Running in interactive mode. ==\n" -#if defined (__unix__) || (defined (__APPLE__) && defined (__MACH__)) +#if defined (__unix__) || (defined (__APPLE__) && defined (__MACH__)) || defined (_WIN32) " - Press Ctrl+C to interject at any time.\n" #endif " - Press Return to return control to LLaMa.\n" @@ -1039,6 +1043,9 @@ int main(int argc, char ** argv) { } } +#if defined (_WIN32) + signal(SIGINT, SIG_DFL); +#endif // report timing { |