Fixed a few typos in the implementation of Windows interrupts.

This commit is contained in:
Juan Jose Garcia Ripoll 2009-09-19 00:48:17 +02:00
parent 2661b663ae
commit 80cf4ea148
3 changed files with 16 additions and 16 deletions

View file

@ -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 =

View file

@ -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

View file

@ -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);