1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
From 5e990ec9429c2a5797567a735452b80a5d6dc6ff Mon Sep 17 00:00:00 2001
From: Aman Gupta <aman@tmm1.net>
Date: Mon, 9 Feb 2015 23:24:32 -0800
Subject: [PATCH 09/11] use rb_thread_fd_select whenever possible
Conflicts:
ext/em.cpp
---
ext/em.cpp | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/ext/em.cpp b/ext/em.cpp
index eb4a080..27ea088 100644
--- a/ext/em.cpp
+++ b/ext/em.cpp
@@ -809,7 +809,8 @@ SelectData_t::~SelectData_t()
_SelectDataSelect
*****************/
-#ifdef HAVE_TBR
+
+#if !defined(HAVE_RB_THREAD_FD_SELECT) && defined(HAVE_TBR)
static VALUE _SelectDataSelect (void *v)
{
SelectData_t *sd = (SelectData_t*)v;
@@ -824,7 +825,11 @@ SelectData_t::_Select
int SelectData_t::_Select()
{
- #ifdef HAVE_TBR
+ #if defined(HAVE_RB_THREAD_FD_SELECT)
+ // added in ruby 1.9.2
+ return rb_thread_fd_select (maxsocket+1, &fdreads, &fdwrites, &fderrors, &tv);
+ #elif defined(HAVE_TBR)
+ // added in ruby 1.9.1, deprecated in ruby 2.0.0
rb_thread_blocking_region (_SelectDataSelect, (void*)this, RUBY_UBF_IO, 0);
return nSockets;
#endif
--
2.1.4
|