Package: ruby-eventmachine / 1.0.3-6+deb8u1

0009-use-rb_thread_fd_select-whenever-possible.patch Patch series | download
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