rage-iodine 2.2.0 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 26c64867b568efaa1a0ae783f20270a2b5ed8c0fcc010092618c5d8dbc44c90b
4
- data.tar.gz: 626631091ff1089858442160f6ef8e37acbed44dfa31f4840c8687ef6fa127c0
3
+ metadata.gz: 0c7dd77022028a6bdd65a929622793240c5c6d844ed91b46741a7964ef8b734b
4
+ data.tar.gz: a03c8b323b45d88304cb628201bce9a90d8eb31263b0bc7ebf303beb09c2ce25
5
5
  SHA512:
6
- metadata.gz: 46a415053aeb26048f786b2231c303e0d420dd01c25e0bb549e5b982952254fef69939a9f5771cdf8a6a4b54604496ac78853dedfae21a7577481f6e2f242654
7
- data.tar.gz: 06f1410986a09fa0d5316907d02aeab6875dd2d7887ae679c3b289e0bb6222c23b208ad2e221dd425f2991dd9f4dd358f8ed68aaea36fb6852fb58a97dc42a15
6
+ metadata.gz: e5d438ae9a488b9d814b43bb915adb2035bf64f094740d8ead2ef4a402f3e095ac894e50608bba819e7bb5abc26c8aff1cfe902022cebb8deb165976ff1095f3
7
+ data.tar.gz: fc9ae3246f6226feafca77dc6c0d52d73629c107daea5fffaa95bb89cfe4775b522d8222f90336e8dcc4e30a794a678a0dab316ebcb564c28d932107d485ede5
data/ext/iodine/fio.c CHANGED
@@ -2051,7 +2051,7 @@ static size_t fio_poll(void) {
2051
2051
  epoll_wait(internal[j].data.fd, events, FIO_POLL_MAX_EVENTS, 0);
2052
2052
  if (active_count > 0) {
2053
2053
  for (int i = 0; i < active_count; i++) {
2054
- if (events[i].events & (~(EPOLLIN | EPOLLOUT))) {
2054
+ if (events[i].events & (~(EPOLLIN | EPOLLOUT | EPOLLHUP | EPOLLRDHUP))) {
2055
2055
  // errors are hendled as disconnections (on_close)
2056
2056
  fio_force_close_in_poll(fd2uuid(events[i].data.fd));
2057
2057
  } else {
@@ -2060,9 +2060,14 @@ static size_t fio_poll(void) {
2060
2060
  fio_defer_push_urgent(deferred_on_ready,
2061
2061
  (void *)fd2uuid(events[i].data.fd), NULL);
2062
2062
  }
2063
- if (events[i].events & EPOLLIN)
2063
+ if (events[i].events & EPOLLIN) {
2064
2064
  fio_defer_push_task(deferred_on_data,
2065
2065
  (void *)fd2uuid(events[i].data.fd), NULL);
2066
+ }
2067
+ if (events[i].events & (EPOLLHUP | EPOLLRDHUP)) {
2068
+ fio_defer_push_task(fio_force_close_in_poll,
2069
+ (void *)fd2uuid(events[i].data.fd), NULL);
2070
+ }
2066
2071
  }
2067
2072
  } // end for loop
2068
2073
  total += active_count;
@@ -2197,7 +2202,8 @@ static size_t fio_poll(void) {
2197
2202
  NULL);
2198
2203
  }
2199
2204
  if (events[i].flags & (EV_EOF | EV_ERROR)) {
2200
- fio_force_close_in_poll(fd2uuid(events[i].udata));
2205
+ fio_defer_push_task(fio_force_close_in_poll,
2206
+ (void *)fd2uuid(events[i].udata), NULL);
2201
2207
  }
2202
2208
  }
2203
2209
  } else if (active_count < 0) {
@@ -1,3 +1,3 @@
1
1
  module Iodine
2
- VERSION = '2.2.0'.freeze
2
+ VERSION = '2.3.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rage-iodine
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.0
4
+ version: 2.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Boaz Segev
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-11-20 00:00:00.000000000 Z
11
+ date: 2023-11-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake