kgio 2.3.2 → 2.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/GIT-VERSION-GEN CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/bin/sh
2
2
 
3
3
  GVF=GIT-VERSION-FILE
4
- DEF_VER=v2.3.2.GIT
4
+ DEF_VER=v2.3.3.GIT
5
5
 
6
6
  LF='
7
7
  '
data/ext/kgio/accept.c CHANGED
@@ -69,6 +69,7 @@ static VALUE xaccept(void *ptr)
69
69
 
70
70
  #ifdef HAVE_RB_THREAD_BLOCKING_REGION
71
71
  # include <time.h>
72
+ # include "blocking_io_region.h"
72
73
  /*
73
74
  * Try to use a (real) blocking accept() since that can prevent
74
75
  * thundering herds under Linux:
@@ -82,7 +83,7 @@ static int thread_accept(struct accept_args *a, int force_nonblock)
82
83
  {
83
84
  if (force_nonblock)
84
85
  set_nonblocking(a->fd);
85
- return (int)rb_thread_blocking_region(xaccept, a, RUBY_UBF_IO, 0);
86
+ return (int)rb_thread_io_blocking_region(xaccept, a, a->fd);
86
87
  }
87
88
 
88
89
  static void set_blocking_or_block(int fd)
@@ -0,0 +1,6 @@
1
+ #ifdef HAVE_RB_THREAD_BLOCKING_REGION
2
+ # ifndef HAVE_RB_THREAD_IO_BLOCKING_REGION
3
+ # define rb_thread_io_blocking_region(fn,data,fd) \
4
+ rb_thread_blocking_region((fn),(data),RUBY_UBF_IO,0)
5
+ # endif
6
+ #endif
data/ext/kgio/connect.c CHANGED
@@ -98,7 +98,8 @@ static VALUE tcp_connect(VALUE klass, VALUE ip, VALUE port, int io_wait)
98
98
  * Creates a new Kgio::TCPSocket object and initiates a
99
99
  * non-blocking connection.
100
100
  *
101
- * This may block and call any method defined to kgio_wait_writable.
101
+ * This may block and call any method defined to +kgio_wait_writable+
102
+ * for the class.
102
103
  *
103
104
  * Unlike the TCPSocket.new in Ruby, this does NOT perform DNS
104
105
  * lookups (which is subject to a different set of timeouts and
@@ -155,7 +156,8 @@ static VALUE unix_connect(VALUE klass, VALUE path, int io_wait)
155
156
  * Creates a new Kgio::UNIXSocket object and initiates a
156
157
  * non-blocking connection.
157
158
  *
158
- * This may block and call any method defined to kgio_wait_writable.
159
+ * This may block and call any method defined to +kgio_wait_writable+
160
+ * for the class.
159
161
  */
160
162
  static VALUE kgio_unix_connect(VALUE klass, VALUE path)
161
163
  {
@@ -212,7 +214,8 @@ static VALUE stream_connect(VALUE klass, VALUE addr, int io_wait)
212
214
  * Creates a generic Kgio::Socket object and initiates a
213
215
  * non-blocking connection.
214
216
  *
215
- * This may block and call any method assigned to kgio_wait_writable.
217
+ * This may block and call any method defined to +kgio_wait_writable+
218
+ * for the class.
216
219
  */
217
220
  static VALUE kgio_connect(VALUE klass, VALUE addr)
218
221
  {
data/ext/kgio/extconf.rb CHANGED
@@ -27,6 +27,7 @@ have_type("struct RObject") and check_sizeof("struct RObject")
27
27
  check_sizeof("int")
28
28
  have_func('rb_io_ascii8bit_binmode')
29
29
  have_func('rb_thread_blocking_region')
30
+ have_func('rb_thread_io_blocking_region')
30
31
  have_func('rb_str_set_len')
31
32
 
32
33
  dir_config('kgio')
data/ext/kgio/poll.c CHANGED
@@ -62,7 +62,7 @@ static int io_to_pollfd_i(VALUE key, VALUE value, VALUE args)
62
62
 
63
63
  static void hash2pollfds(struct poll_args *a)
64
64
  {
65
- a->fds = xmalloc(sizeof(struct poll_args) * RHASH_SIZE(a->ios));
65
+ a->fds = xmalloc(sizeof(struct pollfd) * RHASH_SIZE(a->ios));
66
66
  a->fd_to_io = st_init_numtable();
67
67
  rb_hash_foreach(a->ios, io_to_pollfd_i, (VALUE)a);
68
68
  }
@@ -126,7 +126,7 @@ retry:
126
126
  * Reads at most maxlen bytes from the stream socket. Returns with a
127
127
  * newly allocated buffer, or may reuse an existing buffer if supplied.
128
128
  *
129
- * Calls whatever is is defined to be the kgio_wait_readable method
129
+ * This may block and call any method defined to +kgio_wait_readable+
130
130
  * for the class.
131
131
  *
132
132
  * Returns nil on EOF.
@@ -359,7 +359,7 @@ retry:
359
359
  *
360
360
  * Returns nil when the write completes.
361
361
  *
362
- * Calls whatever is is defined to be the kgio_wait_writable method
362
+ * This may block and call any method defined to +kgio_wait_writable+
363
363
  * for the class.
364
364
  */
365
365
  static VALUE kgio_write(VALUE io, VALUE str)
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kgio
3
3
  version: !ruby/object:Gem::Version
4
- hash: 7
5
- prerelease: false
4
+ hash: 5
5
+ prerelease:
6
6
  segments:
7
7
  - 2
8
8
  - 3
9
- - 2
10
- version: 2.3.2
9
+ - 3
10
+ version: 2.3.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - kgio hackers
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-02-15 00:00:00 +00:00
18
+ date: 2011-03-15 00:00:00 +00:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -96,6 +96,7 @@ files:
96
96
  - ext/kgio/accept.c
97
97
  - ext/kgio/ancient_ruby.h
98
98
  - ext/kgio/autopush.c
99
+ - ext/kgio/blocking_io_region.h
99
100
  - ext/kgio/connect.c
100
101
  - ext/kgio/extconf.rb
101
102
  - ext/kgio/kgio.h
@@ -168,7 +169,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
168
169
  requirements: []
169
170
 
170
171
  rubyforge_project: rainbows
171
- rubygems_version: 1.3.7
172
+ rubygems_version: 1.6.1
172
173
  signing_key:
173
174
  specification_version: 3
174
175
  summary: kinder, gentler I/O for Ruby