mirror of
https://gitlab.com/embeddable-common-lisp/ecl.git
synced 2026-03-07 04:40:35 -08:00
Fixed a few typos in the implementation of Windows interrupts.
This commit is contained in:
parent
2661b663ae
commit
80cf4ea148
3 changed files with 16 additions and 16 deletions
|
|
@ -26,7 +26,7 @@ THEHOST = win32
|
|||
GMP_TYPE = gc
|
||||
|
||||
# Set it to non-empty to include Win32 thread support
|
||||
ECL_THREADS =
|
||||
ECL_THREADS = 1
|
||||
|
||||
# Set it to non-empty to include support for Unicode characters
|
||||
ECL_UNICODE =
|
||||
|
|
|
|||
|
|
@ -513,8 +513,8 @@ mp_block_signals(void)
|
|||
{
|
||||
#ifdef ECL_WINDOWS_THREADS
|
||||
cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object previous = ecl_symbol_value(the_env, @'si::*interrupt-enable*');
|
||||
ECL_SETQ(the_env, @'si::*interrupt-enable*', Cnil);
|
||||
cl_object previous = ecl_symbol_value(@'si::*interrupts-enabled*');
|
||||
ECL_SETQ(the_env, @'si::*interrupts-enabled*', Cnil);
|
||||
@(return previous)
|
||||
#else
|
||||
cl_object previous = mp_get_sigmask();
|
||||
|
|
@ -531,7 +531,7 @@ mp_restore_signals(cl_object sigmask)
|
|||
{
|
||||
#ifdef ECL_WINDOWS_THREADS
|
||||
cl_env_ptr the_env = ecl_process_env();
|
||||
ECL_SETQ(the_env, @'si::*interrupt-enable*', sigmask);
|
||||
ECL_SETQ(the_env, @'si::*interrupts-enabled*', sigmask);
|
||||
ecl_check_pending_interrupts();
|
||||
@(return sigmask)
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -639,37 +639,37 @@ LONG WINAPI W32_exception_filter(struct _EXCEPTION_POINTERS* ep)
|
|||
/* Catch all arithmetic exceptions */
|
||||
case EXCEPTION_INT_DIVIDE_BY_ZERO:
|
||||
handle_or_queue(@'division-by-zero', 0);
|
||||
return;
|
||||
return EXCEPTION_CONTINUE_EXECUTION;
|
||||
case EXCEPTION_INT_OVERFLOW:
|
||||
handle_or_queue(@'arithmetic-error', 0);
|
||||
return;
|
||||
return EXCEPTION_CONTINUE_EXECUTION;
|
||||
case EXCEPTION_FLT_DIVIDE_BY_ZERO:
|
||||
handle_or_queue(@'floating-point-overflow', 0);
|
||||
return;
|
||||
return EXCEPTION_CONTINUE_EXECUTION;
|
||||
case EXCEPTION_FLT_OVERFLOW:
|
||||
handle_or_queue(@'floating-point-overflow', 0);
|
||||
return;
|
||||
return EXCEPTION_CONTINUE_EXECUTION;
|
||||
case EXCEPTION_FLT_UNDERFLOW:
|
||||
handle_or_queue(@'floating-point-underflow', 0);
|
||||
return;
|
||||
return EXCEPTION_CONTINUE_EXECUTION;
|
||||
case EXCEPTION_FLT_INEXACT_RESULT:
|
||||
handle_or_queue(@'floating-point-indexact', 0);
|
||||
return;
|
||||
handle_or_queue(@'floating-point-inexact', 0);
|
||||
return EXCEPTION_CONTINUE_EXECUTION;
|
||||
case EXCEPTION_FLT_DENORMAL_OPERAND:
|
||||
case EXCEPTION_FLT_INVALID_OPERATION:
|
||||
handle_or_queue(@'floating-point-invalid-operation', 0);
|
||||
return;
|
||||
return EXCEPTION_CONTINUE_EXECUTION;
|
||||
case EXCEPTION_FLT_STACK_CHECK:
|
||||
handle_or_queue(@'arithmetic-error', 0);
|
||||
return;
|
||||
return EXCEPTION_CONTINUE_EXECUTION;
|
||||
/* Catch segmentation fault */
|
||||
case EXCEPTION_ACCESS_VIOLATION:
|
||||
handle_or_queue(@'ext::segmentation-violation', 0);
|
||||
return;
|
||||
return EXCEPTION_CONTINUE_EXECUTION;
|
||||
/* Catch illegal instruction */
|
||||
case EXCEPTION_ILLEGAL_INSTRUCTION:
|
||||
handle_or_queue(MAKE_FIXNUM(SIGILL), 0);
|
||||
break;
|
||||
return EXCEPTION_CONTINUE_EXECUTION;
|
||||
/* Do not catch anything else */
|
||||
default:
|
||||
excpt_result = EXCEPTION_CONTINUE_SEARCH;
|
||||
|
|
@ -681,7 +681,7 @@ LONG WINAPI W32_exception_filter(struct _EXCEPTION_POINTERS* ep)
|
|||
}
|
||||
|
||||
static cl_object
|
||||
W32_handle_in_thread(cl_object signal_code)
|
||||
W32_handle_in_new_thread(cl_object signal_code)
|
||||
{
|
||||
int outside_ecl = ecl_import_current_thread(@'si::handle-signal', Cnil);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue