[前][次][番号順一覧][スレッド一覧]

ruby-changes:33863

From: ko1 <ko1@a...>
Date: Wed, 14 May 2014 19:55:53 +0900 (JST)
Subject: [ruby-changes:33863] ko1:r45944 (trunk): * ext/openssl/depend: remove dependency from internal headers.

ko1	2014-05-14 19:55:38 +0900 (Wed, 14 May 2014)

  New Revision: 45944

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=45944

  Log:
    * ext/openssl/depend: remove dependency from internal headers.
      [Feature #9612]
    * ext/openssl/ossl.c (ossl_fips_mode_set): ditto.
    * ext/coverage/depend: ditto.
    * include/ruby/thread_native.h: added.
      This header file only provides wrapper functions to control
      native threads. These wrapper functions are used by MRI
      implementation.
    * vm_core.h: use include/ruby/thread_native.h.
    * thread.c: ditto.
    * thread_pthread.h: ditto.
    * thread_win32.h: ditto.
    * thread_native.h: removed.

  Added files:
    trunk/include/ruby/thread_native.h
  Removed files:
    trunk/thread_native.h
  Modified files:
    trunk/ChangeLog
    trunk/ext/coverage/depend
    trunk/ext/openssl/depend
    trunk/ext/openssl/ossl.c
    trunk/thread.c
    trunk/thread_pthread.h
    trunk/thread_win32.h
    trunk/vm_core.h
Index: thread_native.h
===================================================================
--- thread_native.h	(revision 45943)
+++ thread_native.h	(revision 45944)
@@ -1,23 +0,0 @@ https://github.com/ruby/ruby/blob/trunk/thread_native.h#L0
-#ifndef RUBY_THREAD_NATIVE_H
-#define RUBY_THREAD_NATIVE_H
-
-#if   defined(_WIN32)
-#include "thread_win32.h"
-#elif defined(HAVE_PTHREAD_H)
-#include "thread_pthread.h"
-#else
-#error "unsupported thread type"
-#endif
-
-RUBY_SYMBOL_EXPORT_BEGIN
-
-rb_nativethread_id_t rb_nativethread_self();
-
-void rb_nativethread_lock_initialize(rb_nativethread_lock_t *lock);
-void rb_nativethread_lock_destroy(rb_nativethread_lock_t *lock);
-void rb_nativethread_lock_lock(rb_nativethread_lock_t *lock);
-void rb_nativethread_lock_unlock(rb_nativethread_lock_t *lock);
-
-RUBY_SYMBOL_EXPORT_END
-
-#endif
Index: thread_win32.h
===================================================================
--- thread_win32.h	(revision 45943)
+++ thread_win32.h	(revision 45944)
@@ -12,8 +12,6 @@ https://github.com/ruby/ruby/blob/trunk/thread_win32.h#L12
 #ifndef RUBY_THREAD_WIN32_H
 #define RUBY_THREAD_WIN32_H
 
-#include <windows.h>
-
 # ifdef __CYGWIN__
 # undef _WIN32
 # endif
@@ -21,13 +19,6 @@ https://github.com/ruby/ruby/blob/trunk/thread_win32.h#L19
 WINBASEAPI BOOL WINAPI
 TryEnterCriticalSection(IN OUT LPCRITICAL_SECTION lpCriticalSection);
 
-typedef HANDLE rb_nativethread_id_t;
-
-typedef union rb_thread_lock_union {
-    HANDLE mutex;
-    CRITICAL_SECTION crit;
-} rb_nativethread_lock_t;
-
 typedef struct rb_thread_cond_struct {
     struct cond_event_entry *next;
     struct cond_event_entry *prev;
Index: include/ruby/thread_native.h
===================================================================
--- include/ruby/thread_native.h	(revision 0)
+++ include/ruby/thread_native.h	(revision 45944)
@@ -0,0 +1,56 @@ https://github.com/ruby/ruby/blob/trunk/include/ruby/thread_native.h#L1
+/**********************************************************************
+
+  thread_native.h -
+
+  $Author: ko1 $
+  created at: Wed May 14 19:37:31 2014
+
+  Copyright (C) 2014 Yukihiro Matsumoto
+
+**********************************************************************/
+
+#ifndef RUBY_THREAD_NATIVE_H
+#define RUBY_THREAD_NATIVE_H 1
+
+/*
+ * This file contains wrapper APIs for native thread primitives
+ * which Ruby interpreter uses.
+ *
+ * Now, we only suppors pthread and Windows threads.
+ *
+ * If you want to use Ruby's Mutex and so on to synchronize Ruby Threads,
+ * please use Mutex directly.
+ */
+
+
+#if defined(_WIN32)
+#include <windows.h>
+typedef HANDLE rb_nativethread_id_t;
+
+typedef union rb_thread_lock_union {
+    HANDLE mutex;
+    CRITICAL_SECTION crit;
+} rb_nativethread_lock_t;
+
+#elif defined(HAVE_PTHREAD_H)
+#include <pthread.h>
+typedef pthread_t rb_nativethread_id_t;
+typedef pthread_mutex_t rb_nativethread_lock_t;
+
+#else
+#error "unsupported thread type"
+
+#endif
+
+RUBY_SYMBOL_EXPORT_BEGIN
+
+rb_nativethread_id_t rb_nativethread_self();
+
+void rb_nativethread_lock_initialize(rb_nativethread_lock_t *lock);
+void rb_nativethread_lock_destroy(rb_nativethread_lock_t *lock);
+void rb_nativethread_lock_lock(rb_nativethread_lock_t *lock);
+void rb_nativethread_lock_unlock(rb_nativethread_lock_t *lock);
+
+RUBY_SYMBOL_EXPORT_END
+
+#endif

Property changes on: include/ruby/thread_native.h
___________________________________________________________________
Added: svn:eol-style
   + LF

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 45943)
+++ ChangeLog	(revision 45944)
@@ -1,3 +1,28 @@ https://github.com/ruby/ruby/blob/trunk/ChangeLog#L1
+Wed May 14 19:31:03 2014  Koichi Sasada  <ko1@a...>
+
+	* ext/openssl/depend: remove dependency from internal headers.
+	  [Feature #9612]
+
+	* ext/openssl/ossl.c (ossl_fips_mode_set): ditto.
+
+	* ext/coverage/depend: ditto.
+
+	* include/ruby/thread_native.h: added.
+
+	  This header file only provides wrapper functions to control
+	  native threads. These wrapper functions are used by MRI
+	  implementation.
+
+	* vm_core.h: use include/ruby/thread_native.h.
+
+	* thread.c: ditto.
+
+	* thread_pthread.h: ditto.
+
+	* thread_win32.h: ditto.
+
+	* thread_native.h: removed.
+
 Wed May 14 18:03:28 2014  Koichi Sasada  <ko1@a...>
 
 	* gc.c: enable RGENGC_AGE2_PROMOTION.
Index: thread_pthread.h
===================================================================
--- thread_pthread.h	(revision 45943)
+++ thread_pthread.h	(revision 45944)
@@ -11,12 +11,9 @@ https://github.com/ruby/ruby/blob/trunk/thread_pthread.h#L11
 #ifndef RUBY_THREAD_PTHREAD_H
 #define RUBY_THREAD_PTHREAD_H
 
-#include <pthread.h>
 #ifdef HAVE_PTHREAD_NP_H
 #include <pthread_np.h>
 #endif
-typedef pthread_t rb_nativethread_id_t;
-typedef pthread_mutex_t rb_nativethread_lock_t;
 
 typedef struct rb_thread_cond_struct {
     pthread_cond_t cond;
Index: vm_core.h
===================================================================
--- vm_core.h	(revision 45943)
+++ vm_core.h	(revision 45944)
@@ -23,9 +23,15 @@ https://github.com/ruby/ruby/blob/trunk/vm_core.h#L23
 #include "id.h"
 #include "method.h"
 #include "ruby_atomic.h"
-#include "thread_native.h"
 #include "ccan/list/list.h"
 
+#include "ruby/thread_native.h"
+#if   defined(_WIN32)
+#include "thread_win32.h"
+#elif defined(HAVE_PTHREAD_H)
+#include "thread_pthread.h"
+#endif
+
 #ifndef ENABLE_VM_OBJSPACE
 #ifdef _WIN32
 /*
Index: thread.c
===================================================================
--- thread.c	(revision 45943)
+++ thread.c	(revision 45944)
@@ -62,6 +62,7 @@ https://github.com/ruby/ruby/blob/trunk/thread.c#L62
 #include "timev.h"
 #include "ruby/io.h"
 #include "ruby/thread.h"
+#include "ruby/thread_native.h"
 #include "internal.h"
 
 #ifndef USE_NATIVE_THREAD_PRIORITY
Index: ext/coverage/depend
===================================================================
--- ext/coverage/depend	(revision 45943)
+++ ext/coverage/depend	(revision 45944)
@@ -8,4 +8,4 @@ $(OBJS): $(HDRS) $(ruby_headers) \ https://github.com/ruby/ruby/blob/trunk/ext/coverage/depend#L8
   $(top_srcdir)/ruby_atomic.h \
   $(top_srcdir)/thread_pthread.h \
   $(top_srcdir)/internal.h \
-  $(top_srcdir)/thread_native.h
+  $(top_srcdir)/include/ruby/thread_native.h
Index: ext/openssl/ossl.c
===================================================================
--- ext/openssl/ossl.c	(revision 45943)
+++ ext/openssl/ossl.c	(revision 45944)
@@ -467,7 +467,7 @@ ossl_fips_mode_set(VALUE self, VALUE ena https://github.com/ruby/ruby/blob/trunk/ext/openssl/ossl.c#L467
 /**
  * Stores locks needed for OpenSSL thread safety
  */
-#include "../../thread_native.h"
+#include "ruby/thread_native.h"
 static rb_nativethread_lock_t *ossl_locks;
 
 static void
Index: ext/openssl/depend
===================================================================
--- ext/openssl/depend	(revision 45943)
+++ ext/openssl/depend	(revision 45944)
@@ -3,4 +3,3 @@ $(OBJS): $(HDRS) $(ruby_headers) \ https://github.com/ruby/ruby/blob/trunk/ext/openssl/depend#L3
   $(hdrdir)/ruby/encoding.h \
   $(hdrdir)/ruby/oniguruma.h \
   $(hdrdir)/ruby/thread.h
-ossl.o: $(top_srcdir)/thread_native.h $(top_srcdir)/thread_$(THREAD_MODEL).h

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]