[前][次][番号順一覧][スレッド一覧][生データ]

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

[前][次][番号順一覧][スレッド一覧][生データ]