From 76bc2d1ed7f13fb329c33f48756ea3c24c59a6ea Mon Sep 17 00:00:00 2001 From: yugui Date: Thu, 17 May 2012 02:48:59 +0000 Subject: Imports Ruby's port to NativeClient (a.k.a NaCl). Patch by Google Inc. [ruby-core:45073]. * configure.in (RUBY_NACL): New M4 func to configure variables for NaCl. (RUBY_NACL_CHECK_PEPPER_TYPES): New M4 func to check the old names of Pepper interface types. (BTESTRUBY): New variable to specify which ruby should be run on "make btest". NaCl can run the built binary by sel_ldr, but it need rbconfig.rb. So this variable is distinguished from $MINIRUBY. * thread_pthread.c: Disabled some features on NaCl. * io.c: ditto. * process.c: ditto. * signal.c: ditto. * file.c: ditto. * missing/flock.c: ditto. * nacl/pepper_main.c: An example implementation of Pepper application that embeds Ruby. * nacl/example.html: An example of web page that uses the Pepper application. * nacl/nacl-config.rb: Detects variants of NaCl SDK. * nacl/GNUmakefile.in: Makefile template for NaCl specific build process. * nacl/package.rb: script for packaging a NaCl-Ruby embedding application. * nacl/reate_nmf.rb: Wrapper script of create_nmf.py * dln.c (dln_load): Added a hack to call on NaCl. * util.c (ruby_getcwd): Path to the current directort is not available on NaCl. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35672 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- thread.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'thread.c') diff --git a/thread.c b/thread.c index 27504e5e2e..ccf350eee6 100644 --- a/thread.c +++ b/thread.c @@ -2420,6 +2420,11 @@ rb_fd_dup(rb_fdset_t *dst, const rb_fdset_t *src) memcpy(dst->fdset, src->fdset, size); } +#ifdef __native_client__ +int select(int nfds, fd_set *readfds, fd_set *writefds, + fd_set *exceptfds, struct timeval *timeout); +#endif + int rb_fd_select(int n, rb_fdset_t *readfds, rb_fdset_t *writefds, rb_fdset_t *exceptfds, struct timeval *timeout) { @@ -3298,7 +3303,9 @@ mutex_free(void *ptr) if (err) rb_bug("%s", err); } native_mutex_destroy(&mutex->lock); +#ifdef HAVE_PTHREAD_COND_INITIALIZE native_cond_destroy(&mutex->cond); +#endif } ruby_xfree(ptr); } @@ -3333,7 +3340,9 @@ mutex_alloc(VALUE klass) obj = TypedData_Make_Struct(klass, rb_mutex_t, &mutex_data_type, mutex); native_mutex_initialize(&mutex->lock); +#ifdef HAVE_PTHREAD_COND_INITIALIZE native_cond_initialize(&mutex->cond, RB_CONDATTR_CLOCK_MONOTONIC); +#endif return obj; } @@ -4781,4 +4790,3 @@ rb_reset_coverages(void) GET_VM()->coverages = Qfalse; rb_remove_event_hook(update_coverage); } - -- cgit v1.2.3