evt 0.3.2 → 0.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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/ext/evt/epoll.h +9 -2
  3. data/lib/evt/version.rb +1 -1
  4. metadata +4 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 945c1a802be8b4e03b88c44138a139367288409b27c83a6f2904d0ecc94d2a40
4
- data.tar.gz: 7b88e16f4a082f536c5b0eb9a7f68e67e6e1f5ab4586dbe771f7c57b9004447a
3
+ metadata.gz: 2a9531f3994696a84020be4779721295f069bdffef6640bad51e3a5e7ec2fe03
4
+ data.tar.gz: e3767ace4df611ed920321830ec2bb9569736f650e9c84dd20b1247f09294431
5
5
  SHA512:
6
- metadata.gz: f042da98ff5f85de3b4fce59a2726f2f4c46a1da8817abb524d700cd0413fc4118cb6c0a766a69abdc7e4ae5f0acdd35bc653b0c33116239c1e776f4c3218f23
7
- data.tar.gz: 1824a4935d712e62268b9cad01f52c445ccecfcaa859b11fd93749f28ef3f259370b011af395ae269c9c03544b7ab5c1bb6ad3afd18cc8eea4a6d576e151ff76
6
+ metadata.gz: ca313fa9c2ef76fb2dd6c2f552856dff76701d6db44d4298a37b0fab0b97213b3074983b7fcaf9d6614fce5181345ffcc6ac29cb33fd4264d4257146056bff72
7
+ data.tar.gz: 7e5d2c57a5d7a9d2a6c000f537108448188988ef5fe3729e58787df49c46de9d1498c81b89af360a6dc680598c6d577043589b8d8dd09acff058601f83984f12
@@ -3,6 +3,9 @@
3
3
  #include "evt.h"
4
4
 
5
5
  #if HAVE_SYS_EPOLL_H
6
+
7
+ void epoll_internal_deregister(int epfd, int fd);
8
+
6
9
  VALUE method_scheduler_epoll_init(VALUE self) {
7
10
  rb_iv_set(self, "@epfd", INT2NUM(epoll_create(1))); // Size of epoll is ignored after Linux 2.6.8.
8
11
  return Qnil;
@@ -25,8 +28,6 @@ VALUE method_scheduler_epoll_register(VALUE self, VALUE io, VALUE interest) {
25
28
  event.events |= EPOLLOUT;
26
29
  }
27
30
 
28
- event.events |=EPOLLONESHOT;
29
-
30
31
  event.data.ptr = (void*) io;
31
32
 
32
33
  epoll_ctl(epfd, EPOLL_CTL_ADD, fd, &event);
@@ -68,6 +69,7 @@ VALUE method_scheduler_epoll_wait(VALUE self) {
68
69
  obj_io = (VALUE) events[i].data.ptr;
69
70
  rb_funcall(writables, id_push, 1, obj_io);
70
71
  }
72
+ epoll_internal_deregister(epfd, events[i].data.fd);
71
73
  }
72
74
 
73
75
  result = rb_ary_new2(2);
@@ -79,5 +81,10 @@ VALUE method_scheduler_epoll_wait(VALUE self) {
79
81
  VALUE method_scheduler_epoll_backend(VALUE klass) {
80
82
  return rb_str_new_cstr("epoll");
81
83
  }
84
+
85
+ void epoll_internal_deregister(int epfd, int fd) {
86
+ epoll_ctl(epfd, EPOLL_CTL_DEL, fd, NULL);
87
+ }
88
+
82
89
  #endif
83
90
  #endif
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Evt
4
- VERSION = "0.3.2"
4
+ VERSION = "0.3.3"
5
5
  end
metadata CHANGED
@@ -1,11 +1,11 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: evt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Delton Ding
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
  date: 2020-12-23 00:00:00.000000000 Z
@@ -92,7 +92,7 @@ licenses:
92
92
  metadata:
93
93
  homepage_uri: https://github.com/dsh0416/evt
94
94
  source_code_uri: https://github.com/dsh0416/evt
95
- post_install_message:
95
+ post_install_message:
96
96
  rdoc_options: []
97
97
  require_paths:
98
98
  - lib
@@ -108,7 +108,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
108
108
  version: '0'
109
109
  requirements: []
110
110
  rubygems_version: 3.2.2
111
- signing_key:
111
+ signing_key:
112
112
  specification_version: 4
113
113
  summary: The Event Library that designed for Ruby 3.0 Fiber Scheluer.
114
114
  test_files: []