blob: 749e8e78d640545e4bc20eca723e2ed7f037b792 [file] [log] [blame]
/*
* Interface for OSQP signal handling.
*/
#ifndef CTRLC_H
# define CTRLC_H
# ifdef __cplusplus
extern "C" {
# endif // ifdef __cplusplus
# include "glob_opts.h"
# if defined MATLAB
/* No header file available here; define the prototypes ourselves */
bool utIsInterruptPending(void);
bool utSetInterruptEnabled(bool);
# elif defined IS_WINDOWS
/* Use Windows SetConsoleCtrlHandler for signal handling */
# include <windows.h>
# else // if defined MATLAB
/* Use sigaction for signal handling on non-Windows machines */
# include <signal.h>
# endif // if defined MATLAB
/* METHODS are the same for both */
/**
* Start listener for ctrl-c interrupts
*/
void osqp_start_interrupt_listener(void);
/**
* End listener for ctrl-c interrupts
*/
void osqp_end_interrupt_listener(void);
/**
* Check if the solver has been interrupted
* @return Boolean indicating if the solver has been interrupted
*/
int osqp_is_interrupted(void);
# ifdef __cplusplus
}
# endif // ifdef __cplusplus
#endif /* END IFDEF CTRLC */