yarv-diff:377
From: ko1 atdot.net
Date: 31 Aug 2006 19:11:53 +0900
Subject: [yarv-diff:377] r544 - branches/parallel
Author: ko1
Date: 2006-08-31 19:11:51 +0900 (Thu, 31 Aug 2006)
New Revision: 544
Modified:
branches/parallel/ChangeLog
branches/parallel/configure.in
branches/parallel/thread_pthread.h
Log:
* configure.in : check pthread_spinlock_t
* thread_pthread.h : ditto
Modified: branches/parallel/ChangeLog
===================================================================
--- branches/parallel/ChangeLog 2006-08-30 14:17:21 UTC (rev 543)
+++ branches/parallel/ChangeLog 2006-08-31 10:11:51 UTC (rev 544)
@@ -4,6 +4,13 @@
# from Mon, 03 May 2004 01:24:19 +0900
#
+2006-08-31(Thu) 19:09:56 +0900 Koichi Sasada <ko1 atdot.net>
+
+ * configure.in : check pthread_spinlock_t
+
+ * thread_pthread.h : ditto
+
+
2006-08-30(Wed) 23:15:53 +0900 Koichi Sasada <ko1 atdot.net>
* eval_intern.h : parallelize
Modified: branches/parallel/configure.in
===================================================================
--- branches/parallel/configure.in 2006-08-30 14:17:21 UTC (rev 543)
+++ branches/parallel/configure.in 2006-08-31 10:11:51 UTC (rev 544)
@@ -781,6 +781,9 @@
fi
fi
fi
+
+AC_CHECK_TYPES(pthread_spinlock_t, , , pthread.h)
+
if test x"$ac_cv_header_ucontext_h" = xyes; then
if test x"$rb_with_pthread" = xyes; then
AC_CHECK_FUNCS(getcontext setcontext)
Modified: branches/parallel/thread_pthread.h
===================================================================
--- branches/parallel/thread_pthread.h 2006-08-30 14:17:21 UTC (rev 543)
+++ branches/parallel/thread_pthread.h 2006-08-31 10:11:51 UTC (rev 544)
@@ -5,7 +5,6 @@
#include <pthread.h>
typedef pthread_t yarv_thread_id_t;
typedef pthread_mutex_t yarv_thread_lock_t;
-typedef pthread_spinlock_t yarv_thread_fglock_t;
typedef pthread_cond_t yarv_thread_cond_t;
#define native_mutex_lock pthread_mutex_lock
@@ -18,10 +17,19 @@
} native_thread_data_t;
-
+#if HAVE_PTHREAD_SPINLOCK_T
+typedef pthread_spinlock_t yarv_thread_fglock_t;
#define native_fg_lock pthread_spin_lock
#define native_fg_unlock pthread_spin_unlock
#define native_fg_trylock pthread_spin_trylock
+#define native_fg_init pthread_spin_init
+#else
+typedef pthread_mutex_t yarv_thread_fglock_t;
+#define native_fg_lock pthread_mutex_lock
+#define native_fg_unlock pthread_mutex_unlock
+#define native_fg_trylock pthread_mutex_trylock
+#define native_fg_init pthread_mutex_init
+#endif
void native_fglock_init(yarv_thread_fglock_t *fglock);
@@ -51,7 +59,7 @@
void
native_fglock_init(yarv_thread_fglock_t *lock)
{
- pthread_spin_init(lock, 0);
+ native_fg_init(lock, 0);
}
#define native_cleanup_push pthread_cleanup_push
@@ -274,7 +282,7 @@
static void
interrupt_using_posix_signal(yarv_thread_t *th)
{
- thread_debug("native_thread_send_interrupt_signal (%p)\n", th->thread_id);
+ thread_debug("interrupt_using_posix_signal (%p)\n", th->thread_id);
if (th) {
pthread_kill(th->thread_id, SIGVTALRM);
}
@@ -435,7 +443,7 @@
struct yarv_signal_thread_list *list;
list = signal_thread_list_anchor.next;
while (list) {
- native_thread_send_interrupt_signal(list->th);
+ interrupt_using_posix_signal(list->th);
list = list->next;
}
});
--
ML: yarv-diff quickml.atdot.net
Info: http://www.atdot.net/~ko1/quickml