25 |
*/ |
*/ |
26 |
|
|
27 |
#include <string.h> |
#include <string.h> |
28 |
|
#include <signal.h> |
29 |
#define NEED_MP_H |
#define NEED_MP_H |
30 |
#include "include.h" |
#include "include.h" |
31 |
#define dcheck_type(a,b) check_type(a,b) |
#define dcheck_type(a,b) check_type(a,b) |
296 |
{object form; |
{object form; |
297 |
FUNC at; |
FUNC at; |
298 |
#ifdef CLEAR_CACHE |
#ifdef CLEAR_CACHE |
299 |
static sigaction sa={{sigh},{{0}},SA_RESTART|SA_SIGINFO,NULL); |
static int n; |
300 |
static sigset_t ss; |
static sigset_t ss; |
301 |
|
|
302 |
sigaction(SIGILL,&sa,NULL); |
if (!n) { |
303 |
sigemptyset(&ss); |
struct sigaction sa={{(void *)sigh},{{0}},SA_RESTART|SA_SIGINFO,NULL}; |
304 |
sigaddset(&ss,SIGILL); |
|
305 |
sigprocmask(SIG_BLOCK,&ss,NULL); |
sigaction(SIGILL,&sa,NULL); |
306 |
|
sigemptyset(&ss); |
307 |
|
sigaddset(&ss,SIGILL); |
308 |
|
sigprocmask(SIG_BLOCK,&ss,NULL); |
309 |
|
n=1; |
310 |
|
} |
311 |
#endif |
#endif |
312 |
|
|
313 |
|
|