#include <sys/times.h>
#include "eus.h"
#include <sys/param.h>
#include "time.h"
#include "rgc_utils.h"
#include "xccmem.h"
Go to the source code of this file.
Classes | |
struct | _marking_state |
Macros | |
#define | GCDEBUG |
#define | gcpush(v, off) |
#define | MAXDISPOSE 256 |
#define | PMAXSTACK (MAXSTACK * 110) |
Functions | |
unsigned int | allocate_heap () |
void | barrier_destroy (barrier_t barrier) |
barrier_t | barrier_init (int n_clients) |
void | barrier_reset (barrier_t barrier, int n_clients) |
void | barrier_wait (barrier_t barrier) |
static | call_disposers () |
void | collect () |
void | do_a_little_gc_work (int m_unit, int s_unit) |
unsigned int | do_allocate_heap (unsigned int req_words) |
static int | do_gc_epilogue () |
static void | do_scan_roots () |
static void | go_on_to_sweep_phase () |
void | init_rgc () |
static void | init_sync_data () |
static int | mark_a_little (int m_unit) |
static bpointer | mergecell (register bpointer p, int cbix) |
void | notify_gc () |
static | pnewgcstack (ms_entry *oldsp) |
int | reclaim (bpointer p) |
void | rgc_add_to_classtable (pointer newclass) |
pointer | RGC_GCTIME (register context *ctx, int n, pointer argv[]) |
pointer | RGCCOUNT (register context *ctx, int n, pointer argv[]) |
void | rgcfunc (register context *ctx, pointer mod) |
static void | scan_global_roots () |
static void | scan_local_roots (int i) |
static int | sweep_a_little (int gcmerge, int s_unit) |
static void | wait_until_next_gc_cycle () |
Variables | |
static int | black_cells |
static pointer | dispose [MAXDISPOSE] |
static int | dispose_count |
static int | free_cells |
struct _gc_data | gc_data |
static int | gcmerge |
unsigned int | gs [MAXTHREAD] |
pointer | K_DISPOSE |
long | marked_words = 0 |
static struct _marking_state | marking_state |
int | ps_sem = 1 |
volatile pointer * | psp = pstack |
pointer | pstack [PMAXSTACK] |
mutex_t | pstack_lock |
pointer * | pstacklimit = pstack + PMAXSTACK |
static pointer | rgc_classtable = NULL |
static int | rgc_credit = 0 |
barrier_t | startup_barrier |
struct _sweeping_state | sweeping_state |
struct { | |
mutex_t * lock | |
thread_t tid | |
char using | |
} | thread_table [] |
long long | values [] |
static int | white_cells |
#define GCDEBUG |
Definition at line 56 of file collector.c.
#define gcpush | ( | v, | |
off | |||
) |
Definition at line 296 of file memory.mutex.c.
#define PMAXSTACK (MAXSTACK * 110) |
Definition at line 1118 of file collector.c.
unsigned int allocate_heap | ( | ) |
Definition at line 1195 of file collector.c.
void barrier_destroy | ( | barrier_t | barrier | ) |
Definition at line 1148 of file collector.c.
barrier_t barrier_init | ( | int | n_clients | ) |
Definition at line 1128 of file collector.c.
void barrier_reset | ( | barrier_t | barrier, |
int | n_clients | ||
) |
Definition at line 1141 of file collector.c.
void barrier_wait | ( | barrier_t | barrier | ) |
Definition at line 1155 of file collector.c.
|
static |
Definition at line 98 of file collector.c.
void collect | ( | ) |
Definition at line 913 of file collector.c.
void do_a_little_gc_work | ( | int | m_unit, |
int | s_unit | ||
) |
Definition at line 886 of file collector.c.
unsigned int do_allocate_heap | ( | unsigned int | req_words | ) |
Definition at line 1177 of file collector.c.
|
static |
Definition at line 850 of file collector.c.
|
static |
Definition at line 784 of file collector.c.
|
inlinestatic |
Definition at line 118 of file collector.c.
void init_rgc | ( | ) |
Definition at line 484 of file collector.c.
|
static |
Definition at line 1038 of file collector.c.
|
static |
Definition at line 137 of file collector.c.
Definition at line 355 of file collector.c.
void notify_gc | ( | ) |
Definition at line 716 of file collector.c.
|
static |
Definition at line 77 of file collector.c.
int reclaim | ( | bpointer | p | ) |
Definition at line 315 of file collector.c.
void rgc_add_to_classtable | ( | pointer | newclass | ) |
Definition at line 518 of file collector.c.
Definition at line 1219 of file collector.c.
Definition at line 1213 of file collector.c.
Definition at line 1235 of file collector.c.
|
static |
Definition at line 532 of file collector.c.
|
static |
Definition at line 551 of file collector.c.
|
static |
Definition at line 389 of file collector.c.
|
static |
Definition at line 818 of file collector.c.
|
static |
Definition at line 59 of file collector.c.
|
static |
Definition at line 44 of file collector.c.
|
static |
Definition at line 45 of file collector.c.
|
static |
Definition at line 59 of file collector.c.
struct _gc_data gc_data |
Definition at line 53 of file collector.c.
|
static |
Definition at line 45 of file collector.c.
unsigned int gs[MAXTHREAD] |
Definition at line 712 of file collector.c.
mutex_t* lock |
Definition at line 49 of file collector.c.
long marked_words = 0 |
Definition at line 135 of file collector.c.
|
static |
int ps_sem = 1 |
Definition at line 1036 of file collector.c.
Definition at line 1120 of file collector.c.
Definition at line 1119 of file collector.c.
mutex_t pstack_lock |
Definition at line 1122 of file collector.c.
Definition at line 1121 of file collector.c.
Definition at line 516 of file collector.c.
|
static |
Definition at line 351 of file collector.c.
barrier_t startup_barrier |
Definition at line 54 of file collector.c.
struct _sweeping_state sweeping_state |
Definition at line 116 of file collector.c.
struct { ... } thread_table[] |
thread_t tid |
Definition at line 50 of file collector.c.
char using |
Definition at line 48 of file collector.c.
long long values[] |
|
static |
Definition at line 59 of file collector.c.