hiredis 0.4.2.pre → 0.4.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.
@@ -72,12 +72,20 @@ static VALUE connection_parent_context_alloc(VALUE klass) {
72
72
  return Data_Wrap_Struct(klass, parent_context_mark, parent_context_free, pc);
73
73
  }
74
74
 
75
- static int __wait_readable(int fd, struct timeval *timeout, int *isset) {
75
+ static int __wait_readable(int fd, const struct timeval *timeout, int *isset) {
76
+ struct timeval to;
77
+ struct timeval *toptr = NULL;
76
78
  fd_set fds;
77
79
  FD_ZERO(&fds);
78
80
  FD_SET(fd, &fds);
79
81
 
80
- if (rb_thread_select(fd + 1, &fds, NULL, NULL, timeout) < 0) {
82
+ /* rb_thread_select modifies the passed timeval, so we pass a copy */
83
+ if (timeout != NULL) {
84
+ memcpy(&to, timeout, sizeof(to));
85
+ toptr = &to;
86
+ }
87
+
88
+ if (rb_thread_select(fd + 1, &fds, NULL, NULL, toptr) < 0) {
81
89
  return -1;
82
90
  }
83
91
 
@@ -88,12 +96,20 @@ static int __wait_readable(int fd, struct timeval *timeout, int *isset) {
88
96
  return 0;
89
97
  }
90
98
 
91
- static int __wait_writable(int fd, struct timeval *timeout, int *isset) {
99
+ static int __wait_writable(int fd, const struct timeval *timeout, int *isset) {
100
+ struct timeval to;
101
+ struct timeval *toptr = NULL;
92
102
  fd_set fds;
93
103
  FD_ZERO(&fds);
94
104
  FD_SET(fd, &fds);
95
105
 
96
- if (rb_thread_select(fd + 1, NULL, &fds, NULL, timeout) < 0) {
106
+ /* rb_thread_select modifies the passed timeval, so we pass a copy */
107
+ if (timeout != NULL) {
108
+ memcpy(&to, timeout, sizeof(to));
109
+ toptr = &to;
110
+ }
111
+
112
+ if (rb_thread_select(fd + 1, NULL, &fds, NULL, toptr) < 0) {
97
113
  return -1;
98
114
  }
99
115
 
@@ -1,3 +1,3 @@
1
1
  module Hiredis
2
- VERSION = "0.4.2.pre"
2
+ VERSION = "0.4.3"
3
3
  end
metadata CHANGED
@@ -1,19 +1,19 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hiredis
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2.pre
5
- prerelease: 6
4
+ version: 0.4.3
5
+ prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - Pieter Noordhuis
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-12-02 00:00:00.000000000Z
12
+ date: 2011-12-01 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake-compiler
16
- requirement: &70320532866920 !ruby/object:Gem::Requirement
16
+ requirement: &10823340 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: 0.7.1
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70320532866920
24
+ version_requirements: *10823340
25
25
  description: Ruby extension that wraps Hiredis (blocking connection and reply parsing)
26
26
  email:
27
27
  - pcnoordhuis@gmail.com
@@ -31,32 +31,32 @@ extensions:
31
31
  extra_rdoc_files: []
32
32
  files:
33
33
  - ext/hiredis_ext/extconf.rb
34
- - ext/hiredis_ext/connection.c
35
34
  - ext/hiredis_ext/hiredis_ext.c
36
35
  - ext/hiredis_ext/reader.c
36
+ - ext/hiredis_ext/connection.c
37
37
  - ext/hiredis_ext/hiredis_ext.h
38
- - vendor/hiredis/async.c
39
- - vendor/hiredis/dict.c
40
38
  - vendor/hiredis/hiredis.c
41
- - vendor/hiredis/net.c
42
39
  - vendor/hiredis/sds.c
43
40
  - vendor/hiredis/test.c
44
- - vendor/hiredis/async.h
45
- - vendor/hiredis/dict.h
41
+ - vendor/hiredis/async.c
42
+ - vendor/hiredis/net.c
43
+ - vendor/hiredis/dict.c
44
+ - vendor/hiredis/sds.h
46
45
  - vendor/hiredis/fmacros.h
47
46
  - vendor/hiredis/hiredis.h
48
47
  - vendor/hiredis/net.h
49
- - vendor/hiredis/sds.h
48
+ - vendor/hiredis/dict.h
49
+ - vendor/hiredis/async.h
50
50
  - vendor/hiredis/COPYING
51
51
  - vendor/hiredis/Makefile
52
+ - lib/hiredis.rb
52
53
  - lib/hiredis/connection.rb
54
+ - lib/hiredis/ruby/connection.rb
55
+ - lib/hiredis/ruby/reader.rb
53
56
  - lib/hiredis/ext/connection.rb
54
57
  - lib/hiredis/ext/reader.rb
55
58
  - lib/hiredis/reader.rb
56
- - lib/hiredis/ruby/connection.rb
57
- - lib/hiredis/ruby/reader.rb
58
59
  - lib/hiredis/version.rb
59
- - lib/hiredis.rb
60
60
  - COPYING
61
61
  - Rakefile
62
62
  homepage: http://github.com/pietern/hiredis-rb
@@ -71,15 +71,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
71
71
  - - ! '>='
72
72
  - !ruby/object:Gem::Version
73
73
  version: '0'
74
- segments:
75
- - 0
76
- hash: -2677498915203441495
77
74
  required_rubygems_version: !ruby/object:Gem::Requirement
78
75
  none: false
79
76
  requirements:
80
- - - ! '>'
77
+ - - ! '>='
81
78
  - !ruby/object:Gem::Version
82
- version: 1.3.1
79
+ version: '0'
83
80
  requirements: []
84
81
  rubyforge_project:
85
82
  rubygems_version: 1.8.10