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