summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Rapp <tobias.rapp@student.kit.edu>2013-06-25 12:29:55 +0200
committerTobias Rapp <tobias.rapp@student.kit.edu>2013-06-25 12:29:55 +0200
commit09453174714e71566000aab0e765958e94b98813 (patch)
tree6d7b0a082af79eac5cbac55346f3535b925fa1ab
parent26ef2ae48e314f0115f6e0da235a550504524789 (diff)
parentee56b84c5214d3deecbb583fea654b01ef12ad12 (diff)
Merge branch 'octopos' of https://github.com/TobiasRp/octopos_gc into octopos
-rw-r--r--include/private/gc_priv.h5
-rw-r--r--octopos_threads.c14
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
}