version 1.1, 2018/09/19 05:45:08 |
version 1.6, 2022/03/30 05:55:34 |
|
|
/* $OpenXM$ */ |
/* $OpenXM: OpenXM_contrib2/asir2018/parse/gc_risa.c,v 1.5 2020/10/04 03:14:09 noro Exp $ */ |
|
|
#if defined(VISUAL) || defined(__MINGW32__) |
#if defined(VISUAL) || defined(__MINGW32__) |
#include "private/gcconfig.h" |
#include "private/gcconfig.h" |
|
|
#endif |
#endif |
#endif |
#endif |
#include "gc.h" |
#include "gc.h" |
|
#include <stdio.h> |
|
#include <stdlib.h> |
#include <time.h> |
#include <time.h> |
#include <signal.h> |
#include <signal.h> |
|
|
void error(char *); |
void error(char *); |
void int_handler(); |
void int_handler(); |
|
void ox_usr1_handler(int sig); |
|
|
int *StackBottom; |
int *StackBottom; |
int in_gc, caught_intr; |
int in_gc, caught_intr; |
|
|
|
#if defined(_WIN64) |
|
extern int recv_intr; |
|
|
void check_caught_intr() |
void check_caught_intr() |
{ |
{ |
|
if ( caught_intr == 1 || recv_intr == 1 ) { |
|
caught_intr = 0; recv_intr = 0; |
|
int_handler(SIGINT); |
|
} else if ( caught_intr == 2 || recv_intr == 2 ) { |
|
caught_intr = 0; recv_intr = 0; |
|
fprintf(stderr,"entering reset mode...\n"); |
|
ox_usr1_handler(SIGUSR1); |
|
} |
|
} |
|
#else |
|
void check_caught_intr() |
|
{ |
if ( caught_intr == 1 ) { |
if ( caught_intr == 1 ) { |
caught_intr = 0; |
caught_intr = 0; |
int_handler(SIGINT); |
int_handler(SIGINT); |
} else if ( caught_intr == 2 ) { |
} else if ( caught_intr == 2 ) { |
caught_intr = 0; |
caught_intr = 0; |
|
fprintf(stderr,"entering reset mode...\n"); |
ox_usr1_handler(SIGUSR1); |
ox_usr1_handler(SIGUSR1); |
} |
} |
} |
} |
|
#endif |
|
|
void *Risa_GC_malloc(size_t d) |
void *Risa_GC_malloc(size_t d) |
{ |
{ |
Line 240 extern int GC_free_space_numerator; |
|
Line 260 extern int GC_free_space_numerator; |
|
|
|
void Risa_GC_get_adj(int *nm, int *dn) { |
void Risa_GC_get_adj(int *nm, int *dn) { |
*nm = GC_free_space_numerator; |
*nm = GC_free_space_numerator; |
*dn = GC_free_space_divisor; |
*dn = GC_get_free_space_divisor(); |
} |
} |
|
|
void Risa_GC_set_adj(int nm, int dn) { |
void Risa_GC_set_adj(int nm, int dn) { |
GC_free_space_numerator = nm; |
GC_free_space_numerator = nm; |
GC_free_space_divisor = dn; |
GC_set_free_space_divisor(dn); |
} |
} |
#else |
#else |
void Risa_GC_get_adj(int *nm, int *dn) { |
void Risa_GC_get_adj(int *nm, int *dn) { |
*nm = 1; |
*nm = 1; |
*dn = GC_free_space_divisor; |
*dn = GC_get_free_space_divisor(); |
} |
} |
|
|
void Risa_GC_set_adj(int nm, int dn) { |
void Risa_GC_set_adj(int nm, int dn) { |
GC_free_space_divisor = dn/nm; |
GC_set_free_space_divisor(dn/nm); |
} |
} |
|
#endif |
double GC_get_gctime() { |
double GC_get_gctime() { |
return 0.0; |
return 0.0; |
} |
} |
#endif |
|
|
|
#if defined(MSWIN32) && !defined(VISUAL) && !defined(__MINGW32__) |
#if defined(MSWIN32) && !defined(VISUAL) && !defined(__MINGW32__) |
#include <signal.h> |
#include <signal.h> |