evt 0.3.2 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
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: []