X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fsgen%2Fsgen-split-nursery.c;h=38dc0c8c3a7a68b5b836e361ee0931471fcad54b;hb=565d626c051d4a2a93ae9501a24706dbd90f227b;hp=3b7ae668a203d537bd2372d15d62e7630c5db7e6;hpb=81bd8db9cf9449aa500910c9fc9003cd77ed5244;p=mono.git diff --git a/mono/sgen/sgen-split-nursery.c b/mono/sgen/sgen-split-nursery.c index 3b7ae668a20..38dc0c8c3a7 100644 --- a/mono/sgen/sgen-split-nursery.c +++ b/mono/sgen/sgen-split-nursery.c @@ -1,5 +1,6 @@ -/* - * sgen-splliy-nursery.c: 3-space based nursery collector. +/** + * \file + * 3-space based nursery collector. * * Author: * Rodrigo Kumpera Kumpera @@ -418,18 +419,40 @@ print_gc_param_usage (void) /******************************************Copy/Scan functins ************************************************/ +#define collector_pin_object(obj, queue) sgen_pin_object (obj, queue); +#define COLLECTOR_SERIAL_ALLOC_FOR_PROMOTION alloc_for_promotion + +#include "sgen-copy-object.h" + #define SGEN_SPLIT_NURSERY -#define SERIAL_COPY_OBJECT split_nursery_serial_copy_object -#define SERIAL_COPY_OBJECT_FROM_OBJ split_nursery_serial_copy_object_from_obj +#include "sgen-minor-copy-object.h" +#include "sgen-minor-scan-object.h" + +static void +fill_serial_ops (SgenObjectOperations *ops) +{ + ops->copy_or_mark_object = SERIAL_COPY_OBJECT; + FILL_MINOR_COLLECTOR_SCAN_OBJECT (ops); +} + +#define SGEN_CONCURRENT_MAJOR #include "sgen-minor-copy-object.h" #include "sgen-minor-scan-object.h" +static void +fill_serial_with_concurrent_major_ops (SgenObjectOperations *ops) +{ + ops->copy_or_mark_object = SERIAL_COPY_OBJECT; + FILL_MINOR_COLLECTOR_SCAN_OBJECT (ops); +} + void sgen_split_nursery_init (SgenMinorCollector *collector) { collector->is_split = TRUE; + collector->is_parallel = FALSE; collector->alloc_for_promotion = minor_alloc_for_promotion; @@ -442,8 +465,8 @@ sgen_split_nursery_init (SgenMinorCollector *collector) collector->handle_gc_param = handle_gc_param; collector->print_gc_param_usage = print_gc_param_usage; - FILL_MINOR_COLLECTOR_COPY_OBJECT (collector); - FILL_MINOR_COLLECTOR_SCAN_OBJECT (collector); + fill_serial_ops (&collector->serial_ops); + fill_serial_with_concurrent_major_ops (&collector->serial_ops_with_concurrent_major); }