hiredis-client 0.22.1 → 0.23.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ext/redis_client/hiredis/hiredis_connection.c +18 -43
- metadata +5 -6
- data/hiredis-client.gemspec +0 -33
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 44d5aa10a6591293ac181ec3fa1c332909e3c3ac9cf7ca6b02b6ec8679979f2e
|
4
|
+
data.tar.gz: 8105c8f1f67115e1f53425b0800281ea1cea1e402f212eee3ec71ae9b562b78d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2d972fc4d85e5af707f49c1811f3c7f5d5e971733790ca6d27f73ea81aa601f84193efb1a0f11dc375ad8b6bd336ef1455ec1469078579bcb1a7f8be84373cdf
|
7
|
+
data.tar.gz: 0f4e87b7fa8175cc7ee291bce633634bb69b6e23b67fa157cd3ad0a1509f44806a6e6c193fb77b1ee562d6bec172398a052f0a522de085222357af590af07d01
|
@@ -719,7 +719,6 @@ static VALUE hiredis_flush(VALUE self) {
|
|
719
719
|
|
720
720
|
static int hiredis_read_internal(hiredis_connection_t *connection, VALUE *reply) {
|
721
721
|
void *redis_reply = NULL;
|
722
|
-
int wdone = 0;
|
723
722
|
|
724
723
|
// This struct being on the stack, the GC won't move nor collect that `stack` RArray.
|
725
724
|
// We use that to avoid having to have a `mark` function with write barriers.
|
@@ -737,56 +736,32 @@ static int hiredis_read_internal(hiredis_connection_t *connection, VALUE *reply)
|
|
737
736
|
return HIREDIS_FATAL_CONNECTION_ERROR; // Protocol error
|
738
737
|
}
|
739
738
|
|
740
|
-
|
741
|
-
|
742
|
-
|
743
|
-
errno = 0;
|
744
|
-
|
745
|
-
if (hiredis_buffer_write_nogvl(connection->context, &wdone) == REDIS_ERR) {
|
746
|
-
return HIREDIS_FATAL_CONNECTION_ERROR; // Socket error
|
747
|
-
}
|
748
|
-
|
749
|
-
if (errno == EAGAIN) {
|
750
|
-
int writable = 0;
|
751
|
-
|
752
|
-
if (hiredis_wait_writable(connection->context->fd, &connection->write_timeout, &writable) < 0) {
|
753
|
-
return HIREDIS_CLIENT_TIMEOUT;
|
754
|
-
}
|
739
|
+
/* Read until there is a full reply */
|
740
|
+
while (redis_reply == NULL) {
|
741
|
+
errno = 0;
|
755
742
|
|
756
|
-
|
757
|
-
|
758
|
-
return HIREDIS_CLIENT_TIMEOUT;
|
759
|
-
}
|
760
|
-
}
|
743
|
+
if (hiredis_buffer_read_nogvl(connection->context) == REDIS_ERR) {
|
744
|
+
return HIREDIS_FATAL_CONNECTION_ERROR; // Socket error
|
761
745
|
}
|
762
746
|
|
763
|
-
|
764
|
-
|
765
|
-
errno = 0;
|
747
|
+
if (errno == EAGAIN) {
|
748
|
+
int readable = 0;
|
766
749
|
|
767
|
-
if (
|
768
|
-
return
|
750
|
+
if (hiredis_wait_readable(connection->context->fd, &connection->read_timeout, &readable) < 0) {
|
751
|
+
return HIREDIS_CLIENT_TIMEOUT;
|
769
752
|
}
|
770
753
|
|
771
|
-
if (
|
772
|
-
|
773
|
-
|
774
|
-
if (hiredis_wait_readable(connection->context->fd, &connection->read_timeout, &readable) < 0) {
|
775
|
-
return HIREDIS_CLIENT_TIMEOUT;
|
776
|
-
}
|
777
|
-
|
778
|
-
if (!readable) {
|
779
|
-
errno = EAGAIN;
|
780
|
-
return HIREDIS_CLIENT_TIMEOUT;
|
781
|
-
}
|
782
|
-
|
783
|
-
/* Retry */
|
784
|
-
continue;
|
754
|
+
if (!readable) {
|
755
|
+
errno = EAGAIN;
|
756
|
+
return HIREDIS_CLIENT_TIMEOUT;
|
785
757
|
}
|
786
758
|
|
787
|
-
|
788
|
-
|
789
|
-
|
759
|
+
/* Retry */
|
760
|
+
continue;
|
761
|
+
}
|
762
|
+
|
763
|
+
if (redisGetReplyFromReader(connection->context, &redis_reply) == REDIS_ERR) {
|
764
|
+
return HIREDIS_FATAL_CONNECTION_ERROR; // Protocol error
|
790
765
|
}
|
791
766
|
}
|
792
767
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hiredis-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.23.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jean Boussier
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-12-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: redis-client
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: 0.23.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
26
|
+
version: 0.23.0
|
27
27
|
description:
|
28
28
|
email:
|
29
29
|
- jean.boussier@gmail.com
|
@@ -79,7 +79,6 @@ files:
|
|
79
79
|
- ext/redis_client/hiredis/vendor/test.c
|
80
80
|
- ext/redis_client/hiredis/vendor/test.sh
|
81
81
|
- ext/redis_client/hiredis/vendor/win32.h
|
82
|
-
- hiredis-client.gemspec
|
83
82
|
- lib/hiredis-client.rb
|
84
83
|
- lib/redis_client/hiredis_connection.rb
|
85
84
|
homepage: https://github.com/redis-rb/redis-client
|
@@ -105,7 +104,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
105
104
|
- !ruby/object:Gem::Version
|
106
105
|
version: '0'
|
107
106
|
requirements: []
|
108
|
-
rubygems_version: 3.
|
107
|
+
rubygems_version: 3.0.3.1
|
109
108
|
signing_key:
|
110
109
|
specification_version: 4
|
111
110
|
summary: Hiredis binding for redis-client
|
data/hiredis-client.gemspec
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative "../lib/redis_client/version"
|
4
|
-
|
5
|
-
Gem::Specification.new do |spec|
|
6
|
-
spec.name = "hiredis-client"
|
7
|
-
spec.version = RedisClient::VERSION
|
8
|
-
spec.authors = ["Jean Boussier"]
|
9
|
-
spec.email = ["jean.boussier@gmail.com"]
|
10
|
-
|
11
|
-
spec.summary = "Hiredis binding for redis-client"
|
12
|
-
spec.homepage = "https://github.com/redis-rb/redis-client"
|
13
|
-
spec.license = "MIT"
|
14
|
-
spec.required_ruby_version = ">= 2.6.0"
|
15
|
-
|
16
|
-
spec.metadata["allowed_push_host"] = "https://rubygems.org"
|
17
|
-
|
18
|
-
spec.metadata["homepage_uri"] = spec.homepage
|
19
|
-
spec.metadata["source_code_uri"] = spec.homepage
|
20
|
-
spec.metadata["changelog_uri"] = File.join(spec.homepage, "blob/master/CHANGELOG.md")
|
21
|
-
|
22
|
-
# Specify which files should be added to the gem when it is released.
|
23
|
-
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
24
|
-
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
25
|
-
`git ls-files -z`.split("\x0").reject do |f|
|
26
|
-
(f == __FILE__) || f.match(%r{\A(?:(?:bin|test|spec|features|benchmark)/|\.(?:git|rubocop))})
|
27
|
-
end
|
28
|
-
end
|
29
|
-
spec.require_paths = ["lib"]
|
30
|
-
spec.extensions = ["ext/redis_client/hiredis/extconf.rb"]
|
31
|
-
|
32
|
-
spec.add_runtime_dependency "redis-client", RedisClient::VERSION
|
33
|
-
end
|