diff options
author | Tobias Rapp <tobias.rapp@student.kit.edu> | 2013-06-25 12:29:55 +0200 |
---|---|---|
committer | Tobias Rapp <tobias.rapp@student.kit.edu> | 2013-06-25 12:29:55 +0200 |
commit | 09453174714e71566000aab0e765958e94b98813 (patch) | |
tree | 6d7b0a082af79eac5cbac55346f3535b925fa1ab | |
parent | 26ef2ae48e314f0115f6e0da235a550504524789 (diff) | |
parent | ee56b84c5214d3deecbb583fea654b01ef12ad12 (diff) |
Merge branch 'octopos' of https://github.com/TobiasRp/octopos_gc into octopos
-rw-r--r-- | include/private/gc_priv.h | 5 | ||||
-rw-r--r-- | octopos_threads.c | 14 |
2 files changed, 15 insertions, 4 deletions
diff --git a/include/private/gc_priv.h b/include/private/gc_priv.h index b72b4c8..492cfb3 100644 --- a/include/private/gc_priv.h +++ b/include/private/gc_priv.h @@ -442,14 +442,11 @@ typedef char * ptr_t; /* A generic pointer to which we can add */ PCR_allSigsBlocked, \ PCR_waitForever) # else -# if defined(GC_WIN32_THREADS) || defined(GC_PTHREADS) +# if defined(GC_WIN32_THREADS) || defined(GC_PTHREADS) || defined(GC_OCTOPOS_THREADS) GC_INNER void GC_stop_world(void); GC_INNER void GC_start_world(void); # define STOP_WORLD() GC_stop_world() # define START_WORLD() GC_start_world() -# elif defined(GC_OCTOPOS_THREADS) -# define STOP_WORLD() gc_stop_world(); -# define START_WORLD() gc_start_world(); # else /* Just do a sanity check: we are not inside GC_do_blocking(). */ # define STOP_WORLD() GC_ASSERT(GC_blocked_sp == NULL) diff --git a/octopos_threads.c b/octopos_threads.c index a79a1b8..bc9ca78 100644 --- a/octopos_threads.c +++ b/octopos_threads.c @@ -18,9 +18,21 @@ GC_INNER simple_spinlock GC_allocate_ml; /* GC_INNER GC_bool GC_need_to_lock = FALSE; -- Always lock, for now */ + +GC_INNER void GC_stop_world(void) +{ + gc_stop_world(); /* OctoPOS stop world */ +} + +GC_INNER void GC_start_world(void) +{ + gc_start_world(); /* OctoPOS start world */ +} + /* Push all thread stacks */ GC_INNER void GC_push_all_stacks(void) { + /* Call OctoPOS to push all stacks */ gc_push_all_stacks((void (*)(const void*, const void*)) &GC_push_all_stack); } @@ -47,10 +59,12 @@ void GC_push_thread_structures(void) GC_INNER void GC_reset_finalizer_nested(void) { //TODO + ABORT("Finalizing functionality not implemented"); } GC_INNER unsigned char *GC_check_finalizer_nested(void) { + ABORT("Finalizing functionality not implemented"); return NULL; //TODO } |