|
void * | collector_main (void *arg) |
|
void | Cyc_apply_from_buf (void *data, int argc, object prim, object *buf) |
|
void | debug_dump_globals () |
|
void | gc_add_mutator (gc_thread_data *thd) |
| Add data for a new mutator. More...
|
|
void * | gc_alloc (gc_heap_root *hrt, size_t size, char *obj, gc_thread_data *thd, int *heap_grown) |
| Allocate memory on the heap for an object. More...
|
|
void * | gc_alloc_bignum (gc_thread_data *data) |
| A convenience function for allocating bignums. More...
|
|
void * | gc_alloc_from_bignum (gc_thread_data *data, bignum_type *src) |
| A helper function to create a heap-allocated copy of a bignum. More...
|
|
size_t | gc_allocated_bytes (object obj, gc_free_list *q, gc_free_list *r) |
| Get the number of bytes that will be allocated for obj . More...
|
|
void | gc_collector () |
| Main collector function. More...
|
|
void | gc_collector_sweep () |
| A convenient front-end to the actual gc_sweep function. More...
|
|
void | gc_collector_trace () |
| The collector's tracing algorithm. More...
|
|
char * | gc_copy_obj (object dest, char *obj, gc_thread_data *thd) |
| Copy given object into given heap object. More...
|
|
void | gc_empty_collector_stack () |
| Empty the collector's mark stack. More...
|
|
void | gc_free_old_thread_data () |
| Free thread data for all terminated mutators. More...
|
|
int | gc_grow_heap (gc_heap *h, int heap_type, size_t size, size_t chunk_size, gc_thread_data *thd) |
| Grow a heap by allocating a new page. More...
|
|
void | gc_handshake (gc_status_type s) |
| Called by the collector thread to perform a handshake with all of the mutators. More...
|
|
gc_heap * | gc_heap_create (int heap_type, size_t size, size_t max_size, size_t chunk_size, gc_thread_data *thd) |
| Create a new heap page. The caller must hold the necessary locks. More...
|
|
gc_heap * | gc_heap_free (gc_heap *page, gc_heap *prev_page) |
| Free a page of the heap. More...
|
|
gc_heap * | gc_heap_last (gc_heap *h) |
| Get the heap's last page. More...
|
|
void | gc_heap_merge (gc_heap *hdest, gc_heap *hsrc) |
| Merge one heap into another. More...
|
|
void | gc_initialize (void) |
| Perform one-time initialization before mutators can be executed. More...
|
|
int | gc_is_heap_empty (gc_heap *h) |
| Determine if a heap page is empty. More...
|
|
int | gc_is_stack_obj (gc_thread_data *thd, object obj) |
| Determine if object lives on the thread's stack. More...
|
|
void | gc_mark_globals (object globals, object global_table) |
| Mark globals as part of the tracing collector. More...
|
|
void | gc_mark_gray (gc_thread_data *thd, object obj) |
| Mark the given object gray if it is on the heap. More...
|
|
void | gc_mark_gray2 (gc_thread_data *thd, object obj) |
| Add a pending write to the mark buffer. More...
|
|
void | gc_merge_all_heaps (gc_thread_data *dest, gc_thread_data *src) |
| Merge all thread heaps into another. More...
|
|
void | gc_mut_cooperate (gc_thread_data *thd, int buf_len) |
| Called by a mutator to cooperate with the collector thread. More...
|
|
void | gc_mut_update (gc_thread_data *thd, object old_obj, object value) |
| Write barrier for updates to heap-allocated objects. More...
|
|
void | gc_mutator_thread_blocked (gc_thread_data *thd, object cont) |
| Called explicitly from a mutator thread to let the collector know it (may) block for an unknown period of time. More...
|
|
void | gc_mutator_thread_runnable (gc_thread_data *thd, object result) |
| Called explicitly from a mutator thread to let the collector know that it has finished blocking. More...
|
|
void | gc_post_handshake (gc_status_type s) |
| Change GC status to the given type. More...
|
|
void | gc_print_stats (gc_heap *h) |
| Print heap usage information. Before calling this function the current thread must have the heap lock. More...
|
|
void | gc_remove_mutator (gc_thread_data *thd) |
| Remove selected mutator from the mutator list. This is done for terminated threads. Note data is queued to be freed, to prevent accidentally freeing it while the collector thread is potentially accessing it. More...
|
|
void | gc_start_collector () |
| Spawn the collector thread. More...
|
|
void | gc_sum_pending_writes (gc_thread_data *thd, int locked) |
| Move pending writes to 'last_write'. More...
|
|
size_t | gc_sweep (gc_heap *h, int heap_type, size_t *sum_freed_ptr, gc_thread_data *thd) |
| Sweep portion of the GC algorithm. More...
|
|
void | gc_thr_add_to_move_buffer (gc_thread_data *d, int *alloci, object obj) |
| Add an object to the move buffer. More...
|
|
void | gc_thr_grow_move_buffer (gc_thread_data *d) |
| Increase the size of the mutator's move buffer. More...
|
|
void | gc_thread_data_free (gc_thread_data *thd) |
| Free all data for the given mutator. More...
|
|
void | gc_thread_data_init (gc_thread_data *thd, int mut_num, char *stack_base, long stack_size) |
| Initialize runtime data structures for a thread. More...
|
|
void * | gc_try_alloc (gc_heap *h, int heap_type, size_t size, char *obj, gc_thread_data *thd) |
| Attempt to allocate a new heap slot for the given object. More...
|
|
void | gc_wait_handshake () |
| Wait for all mutators to handshake. More...
|
|
void | gc_zero_read_write_counts (gc_thread_data *thd) |
| Clear thread data read/write fields. More...
|
|