diff options
author | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-05-14 10:55:38 +0000 |
---|---|---|
committer | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-05-14 10:55:38 +0000 |
commit | 7093a2cb5bdd85f84601815d08da90ef71c3322f (patch) | |
tree | 8b7cddc9c06ff65fad73c4dc546f5154c917c8c3 | |
parent | 1b03f51f823a326164d0a8fb51e8270b8f28d327 (diff) |
* 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.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45944 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 25 | ||||
-rw-r--r-- | ext/coverage/depend | 2 | ||||
-rw-r--r-- | ext/openssl/depend | 1 | ||||
-rw-r--r-- | ext/openssl/ossl.c | 2 | ||||
-rw-r--r-- | include/ruby/thread_native.h | 56 | ||||
-rw-r--r-- | thread.c | 1 | ||||
-rw-r--r-- | thread_native.h | 23 | ||||
-rw-r--r-- | thread_pthread.h | 3 | ||||
-rw-r--r-- | thread_win32.h | 9 | ||||
-rw-r--r-- | vm_core.h | 8 |
10 files changed, 91 insertions, 39 deletions
@@ -1,3 +1,28 @@ +Wed May 14 19:31:03 2014 Koichi Sasada <ko1@atdot.net> + + * 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@atdot.net> * gc.c: enable RGENGC_AGE2_PROMOTION. diff --git a/ext/coverage/depend b/ext/coverage/depend index 1227a5c9ae..ad0ac1cdfa 100644 --- a/ext/coverage/depend +++ b/ext/coverage/depend @@ -8,4 +8,4 @@ $(OBJS): $(HDRS) $(ruby_headers) \ $(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 diff --git a/ext/openssl/depend b/ext/openssl/depend index 7991159f2e..9d47df2a8d 100644 --- a/ext/openssl/depend +++ b/ext/openssl/depend @@ -3,4 +3,3 @@ $(OBJS): $(HDRS) $(ruby_headers) \ $(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 diff --git a/ext/openssl/ossl.c b/ext/openssl/ossl.c index 370a16f026..3f09ce7d6f 100644 --- a/ext/openssl/ossl.c +++ b/ext/openssl/ossl.c @@ -467,7 +467,7 @@ ossl_fips_mode_set(VALUE self, VALUE enabled) /** * 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 diff --git a/include/ruby/thread_native.h b/include/ruby/thread_native.h new file mode 100644 index 0000000000..8e500c5a13 --- /dev/null +++ b/include/ruby/thread_native.h @@ -0,0 +1,56 @@ +/********************************************************************** + + 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 @@ -62,6 +62,7 @@ #include "timev.h" #include "ruby/io.h" #include "ruby/thread.h" +#include "ruby/thread_native.h" #include "internal.h" #ifndef USE_NATIVE_THREAD_PRIORITY diff --git a/thread_native.h b/thread_native.h deleted file mode 100644 index aa037d205f..0000000000 --- a/thread_native.h +++ /dev/null @@ -1,23 +0,0 @@ -#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 diff --git a/thread_pthread.h b/thread_pthread.h index 411ef69eb2..d1679f8df3 100644 --- a/thread_pthread.h +++ b/thread_pthread.h @@ -11,12 +11,9 @@ #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; diff --git a/thread_win32.h b/thread_win32.h index c44fd91f2d..60083da0a1 100644 --- a/thread_win32.h +++ b/thread_win32.h @@ -12,8 +12,6 @@ #ifndef RUBY_THREAD_WIN32_H #define RUBY_THREAD_WIN32_H -#include <windows.h> - # ifdef __CYGWIN__ # undef _WIN32 # endif @@ -21,13 +19,6 @@ 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; @@ -23,9 +23,15 @@ #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 /* |