io-event 1.6.1 → 1.6.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ea935760f7d99c16037d0737c0b67e7fa7f407f502e3035abced4396d4d90ca5
4
- data.tar.gz: 28c4387ae3ad0dec06a0bbd13de4db04a0277b826a500a2fa12840dc2fb7ce9f
3
+ metadata.gz: 45049c22b990de175e733bdcce4045d7c4028dd50fa8018ec03b76ec76bfe1f2
4
+ data.tar.gz: 250555adf9d939804cc19f050e8cc42d9f2848e90f75cbcf46abc6543a67dbf1
5
5
  SHA512:
6
- metadata.gz: 4423aa96cfda0606a089d920459f4a2011ea40b0f32680f729a72d0ff253c946a0e01251eb18e15c35e95813aa3df34fe8d99fe2f8dee1027041c858f2adc1be
7
- data.tar.gz: 53a942a3af8f56f1a029777917a0198555355382837c91f5f754a2d8b73a9ada750d605c524fbc9fd0c544e35c527e1d240a1c078b3299258656980feffa11c7
6
+ metadata.gz: ed43ce7a15045fbad357e4e8b6eb176635ebd4148a2d3a5c229cc9af6c246f3d5bd0c8a80969f0a487fac468365b040888ef1e104275e0c82ef2397923bd24e3
7
+ data.tar.gz: 7d36cf2bb3f8dbdddba94564057b767415ff8da2884c8810c2b88e5dae1162a5f17f7bc538a8f766e1be6c6fb14e0fd213f08182b8e8e29e1fea77292dc8f37d
checksums.yaml.gz.sig CHANGED
Binary file
data/ext/extconf.rb CHANGED
@@ -39,6 +39,8 @@ if have_header('sys/event.h')
39
39
  $srcs << "io/event/selector/kqueue.c"
40
40
  end
41
41
 
42
+ have_header('sys/wait.h')
43
+
42
44
  have_header('sys/eventfd.h')
43
45
  $srcs << "io/event/interrupt.c"
44
46
 
@@ -786,14 +786,7 @@ struct timespec * make_timeout(VALUE duration, struct timespec * storage) {
786
786
  return NULL;
787
787
  }
788
788
 
789
- if (FIXNUM_P(duration)) {
790
- storage->tv_sec = NUM2TIMET(duration);
791
- storage->tv_nsec = 0;
792
-
793
- return storage;
794
- }
795
-
796
- else if (RB_FLOAT_TYPE_P(duration)) {
789
+ if (RB_FLOAT_TYPE_P(duration)) {
797
790
  double value = RFLOAT_VALUE(duration);
798
791
  time_t seconds = value;
799
792
 
@@ -803,6 +796,13 @@ struct timespec * make_timeout(VALUE duration, struct timespec * storage) {
803
796
  return storage;
804
797
  }
805
798
 
799
+ else if (RB_INTEGER_TYPE_P(duration)) {
800
+ storage->tv_sec = NUM2TIMET(duration);
801
+ storage->tv_nsec = 0;
802
+
803
+ return storage;
804
+ }
805
+
806
806
  rb_raise(rb_eArgError, "unable to convert timeout: %"PRIsVALUE, rb_inspect(duration));
807
807
  }
808
808
 
@@ -799,14 +799,7 @@ struct timespec * make_timeout(VALUE duration, struct timespec * storage) {
799
799
  return NULL;
800
800
  }
801
801
 
802
- if (FIXNUM_P(duration)) {
803
- storage->tv_sec = NUM2TIMET(duration);
804
- storage->tv_nsec = 0;
805
-
806
- return storage;
807
- }
808
-
809
- else if (RB_FLOAT_TYPE_P(duration)) {
802
+ if (RB_FLOAT_TYPE_P(duration)) {
810
803
  double value = RFLOAT_VALUE(duration);
811
804
  time_t seconds = value;
812
805
 
@@ -816,6 +809,13 @@ struct timespec * make_timeout(VALUE duration, struct timespec * storage) {
816
809
  return storage;
817
810
  }
818
811
 
812
+ else if (RB_INTEGER_TYPE_P(duration)) {
813
+ storage->tv_sec = NUM2TIMET(duration);
814
+ storage->tv_nsec = 0;
815
+
816
+ return storage;
817
+ }
818
+
819
819
  rb_raise(rb_eArgError, "unable to convert timeout: %"PRIsVALUE, rb_inspect(duration));
820
820
  }
821
821
 
@@ -34,8 +34,9 @@
34
34
  #endif
35
35
 
36
36
  #include <time.h>
37
- #ifdef HAVE_RB_PROCESS_STATUS_WAIT
38
- #include <sys/wait.h>
37
+
38
+ #ifdef HAVE_SYS_WAIT_H
39
+ #include <sys/wait.h>
39
40
  #endif
40
41
 
41
42
  enum IO_Event {
@@ -901,14 +901,7 @@ struct __kernel_timespec * make_timeout(VALUE duration, struct __kernel_timespec
901
901
  return NULL;
902
902
  }
903
903
 
904
- if (FIXNUM_P(duration)) {
905
- storage->tv_sec = NUM2TIMET(duration);
906
- storage->tv_nsec = 0;
907
-
908
- return storage;
909
- }
910
-
911
- else if (RB_FLOAT_TYPE_P(duration)) {
904
+ if (RB_FLOAT_TYPE_P(duration)) {
912
905
  double value = RFLOAT_VALUE(duration);
913
906
  time_t seconds = value;
914
907
 
@@ -918,6 +911,13 @@ struct __kernel_timespec * make_timeout(VALUE duration, struct __kernel_timespec
918
911
  return storage;
919
912
  }
920
913
 
914
+ else if (RB_INTEGER_TYPE_P(duration)) {
915
+ storage->tv_sec = NUM2TIMET(duration);
916
+ storage->tv_nsec = 0;
917
+
918
+ return storage;
919
+ }
920
+
921
921
  rb_raise(rb_eArgError, "unable to convert timeout: %"PRIsVALUE, rb_inspect(duration));
922
922
  }
923
923
 
@@ -9,20 +9,20 @@ class IO
9
9
  module Event
10
10
  class Timers
11
11
  class Handle
12
- def initialize(offset, block)
13
- @offset = offset
12
+ def initialize(time, block)
13
+ @time = time
14
14
  @block = block
15
15
  end
16
16
 
17
17
  def < other
18
- @offset < other.offset
18
+ @time < other.time
19
19
  end
20
20
 
21
21
  def > other
22
- @offset > other.offset
22
+ @time > other.time
23
23
  end
24
24
 
25
- attr :offset
25
+ attr :time
26
26
  attr :block
27
27
 
28
28
  def call(...)
@@ -49,15 +49,19 @@ class IO
49
49
  return @heap.size
50
50
  end
51
51
 
52
- def schedule(offset, block)
53
- handle = Handle.new(offset, block)
52
+ # Schedule a block to be called at a specific time in the future.
53
+ # @parameter time [Time] The time at which the block should be called, relative to {#now}.
54
+ def schedule(time, block)
55
+ handle = Handle.new(time, block)
54
56
  @scheduled << handle
55
57
 
56
58
  return handle
57
59
  end
58
60
 
59
- def after(timeout, &block)
60
- schedule(now + timeout, block)
61
+ # Schedule a block to be called after a specific time offset, relative to the current time as returned by {#now}.
62
+ # @parameter offset [Time] The time offset from the current time at which the block should be called.
63
+ def after(offset, &block)
64
+ schedule(self.now + offset, block)
61
65
  end
62
66
 
63
67
  def wait_interval(now = self.now)
@@ -67,7 +71,7 @@ class IO
67
71
  if handle.cancelled?
68
72
  @heap.pop
69
73
  else
70
- return handle.offset - now
74
+ return handle.time - now
71
75
  end
72
76
  end
73
77
  end
@@ -84,7 +88,7 @@ class IO
84
88
  while handle = @heap.peek
85
89
  if handle.cancelled?
86
90
  @heap.pop
87
- elsif handle.offset <= now
91
+ elsif handle.time <= now
88
92
  # Remove the earliest timer from the heap:
89
93
  @heap.pop
90
94
 
@@ -5,6 +5,6 @@
5
5
 
6
6
  class IO
7
7
  module Event
8
- VERSION = "1.6.1"
8
+ VERSION = "1.6.2"
9
9
  end
10
10
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: io-event
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.1
4
+ version: 1.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
metadata.gz.sig CHANGED
Binary file