* src/threads/thread.cpp: Use a finalizer to remove dead threads.
[cacao.git] / src / threads / posix / thread-posix.hpp
index 9257ce8131db2e1bedea4e3d865da2c2092e2795..b8e63635f769497cf3e9764a0ef0874069dc4797 100644 (file)
@@ -1,6 +1,6 @@
 /* src/threads/posix/thread-posix.hpp - POSIX thread functions
 
-   Copyright (C) 1996-2005, 2006, 2007, 2008
+   Copyright (C) 1996-2011
    CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
 
    This file is part of CACAO.
@@ -74,6 +74,7 @@ struct threadobject {
        s4                    index;        /* thread index, starting with 1      */
        u4                    flags;        /* flag field                         */
        u4                    state;        /* state field                        */
+       bool                  is_in_active_list; /* for debugging only            */
 
        pthread_t             tid;          /* pthread id                         */
 
@@ -214,19 +215,6 @@ inline static threadobject* thread_get_current(void);
 #include "vm/jit/intrp/intrp.h"
 #endif
 
-#if defined(__DARWIN__)
-# include <mach/mach.h>
-
-typedef struct {
-       Mutex* mutex;
-       Condition* cond;
-       int value;
-} sem_t;
-
-#else
-# include <semaphore.h>
-#endif
-
 
 // FIXME
 #ifdef __cplusplus
@@ -269,7 +257,6 @@ inline static void thread_set_current(threadobject* t)
        result = pthread_setspecific(thread_current_key, t);
 
        if (result != 0)
-#warning Use below method instead!
                //os::abort_errnum(result, "thread_set_current: pthread_setspecific failed");
                vm_abort("thread_set_current: pthread_setspecific failed");
 #endif
@@ -289,10 +276,6 @@ inline static void threads_set_current_stackframeinfo(struct stackframeinfo_t* s
 
 /* functions ******************************************************************/
 
-void threads_sem_init(sem_t *sem, bool shared, int value);
-void threads_sem_wait(sem_t *sem);
-void threads_sem_post(sem_t *sem);
-
 void threads_start_thread(threadobject *thread, functionptr function);
 
 void threads_set_thread_priority(pthread_t tid, int priority);