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.
- checksums.yaml +4 -4
- data/ext/evt/epoll.h +9 -2
- data/lib/evt/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2a9531f3994696a84020be4779721295f069bdffef6640bad51e3a5e7ec2fe03
|
4
|
+
data.tar.gz: e3767ace4df611ed920321830ec2bb9569736f650e9c84dd20b1247f09294431
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ca313fa9c2ef76fb2dd6c2f552856dff76701d6db44d4298a37b0fab0b97213b3074983b7fcaf9d6614fce5181345ffcc6ac29cb33fd4264d4257146056bff72
|
7
|
+
data.tar.gz: 7e5d2c57a5d7a9d2a6c000f537108448188988ef5fe3729e58787df49c46de9d1498c81b89af360a6dc680598c6d577043589b8d8dd09acff058601f83984f12
|
data/ext/evt/epoll.h
CHANGED
@@ -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
|
data/lib/evt/version.rb
CHANGED
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.
|
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: []
|