nio4r 2.5.8-java → 2.6.0-java

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 033f9f05c481a9a9d84c6a5553c2e5dc7bcc4198e4ee17188faee0269da7772a
4
- data.tar.gz: 83b1fd3819a34840eae944972bb9ec317265c0d478d2c863e499b22d8e62791b
3
+ metadata.gz: aa7ff0bd09ef7e889ab134788e01d7adee76d918828a04770b7870218b5d4209
4
+ data.tar.gz: 7e86a3c72cbc429069af232f7e01b526135a1d0318ff5ed26ed17fada28529cf
5
5
  SHA512:
6
- metadata.gz: '054960a755bf34722f49155f461f0be365a51e33ca499e51910eecd275ec645acd7be07e88ceea734c62c7ab31c1f33f296eb2583ef651b51a1b4a5179c1b048'
7
- data.tar.gz: 5a4c448c727caa09a063b4cf102a34338f51b57613c87acb23e39f350cddd9b39c29dcc6bc873684718ccf6b717ec18929ce0036d6b0a06fa8561b9a1bce1886
6
+ metadata.gz: '0900a204af3c7da49f8f1e8752f91b611edaa5c7520cd5abd338c42018de9a543cc3ca9fd95134a2d22d1e71f6739e5908122a93638ca4fcbe42879a5217ce2a'
7
+ data.tar.gz: 53123e588d68838ce473aeae69891d1d54321e934df358421f40238485cc3881286b89f839cb7634c75cd65e50592eabf8d2d026a26bf627a35fa1c9c5b2587d
@@ -14,34 +14,48 @@ jobs:
14
14
  strategy:
15
15
  fail-fast: false
16
16
  matrix:
17
- os: [ ubuntu-20.04, ubuntu-18.04, macos-10.15, windows-2019 ]
18
- ruby: [ head, 3.0, 2.7, 2.6, 2.5, 2.4, jruby, truffleruby-head ]
17
+ os:
18
+ - ubuntu-22.04
19
+ - macos-11
20
+ - windows-2022
21
+ ruby:
22
+ - "2.4"
23
+ - "2.5"
24
+ - "2.6"
25
+ - "2.7"
26
+ - "3.0"
27
+ - "3.1"
28
+ - "3.2"
29
+ - "head"
30
+ - "jruby"
31
+ - "truffleruby"
19
32
  include:
20
- - { os: ubuntu-16.04, ruby: 3.0 }
21
- - { os: ubuntu-16.04, ruby: 2.4 }
33
+ - {os: ubuntu-20.04, ruby: "3.2"}
34
+ - {os: windows-2019, ruby: "3.2"}
35
+ - {os: windows-2022, ruby: ucrt}
22
36
  exclude:
23
- - { os: windows-2019, ruby: head }
24
- - { os: windows-2019, ruby: jruby }
25
- - { os: windows-2019, ruby: truffleruby-head }
37
+ - {os: windows-2022, ruby: head}
38
+ - {os: windows-2022, ruby: jruby}
39
+ - {os: windows-2022, ruby: truffleruby}
26
40
 
27
41
  steps:
28
- - name: repo checkout
29
- uses: actions/checkout@v2
42
+ - uses: actions/checkout@v3
30
43
 
31
- - name: load ruby
32
- uses: ruby/setup-ruby@v1
44
+ - name: set JAVA_HOME
45
+ if: |
46
+ startsWith(matrix.ruby, 'jruby')
47
+ shell: bash
48
+ run: |
49
+ echo JAVA_HOME=$JAVA_HOME_11_X64 >> $GITHUB_ENV
50
+
51
+ - uses: ruby/setup-ruby@v1
33
52
  with:
34
53
  ruby-version: ${{matrix.ruby}}
54
+ bundler-cache: true
35
55
 
36
- - name: RubyGems, Bundler Update
37
- run: gem update --system --no-document --conservative
38
-
39
- - name: bundle install
40
- run: bundle install --path .bundle/gems --without development
41
-
42
- - name: compile
56
+ - name: Compile
43
57
  run: bundle exec rake compile
44
58
 
45
- - name: test
59
+ - name: Test
46
60
  run: bundle exec rake spec
47
61
  timeout-minutes: 10
data/Gemfile CHANGED
@@ -11,8 +11,7 @@ group :development do
11
11
  end
12
12
 
13
13
  group :development, :test do
14
- gem "coveralls", require: false
15
- gem "rake-compiler", require: false
14
+ gem "rake-compiler", "~> 1.1.9", require: false
16
15
  gem "rspec", "~> 3.7", require: false
17
16
  gem "rubocop", "0.82.0", require: false
18
17
  end
@@ -1,3 +1,26 @@
1
+ ## 2.5.9 (2023-04-02)
2
+
3
+ https://github.com/socketry/nio4r/compare/v2.5.8..v2.5.9
4
+
5
+ ## 2.5.8 (2021-08-03)
6
+
7
+ * [#276](https://github.com/socketry/nio4r/pull/276)
8
+ Fix missing return statement in function returning non-void (issue [#275](https://github.com/socketry/nio4r/pull/275))
9
+ ([@ioquatix])
10
+ * Remove `guard-rspec` from development dependencies ([@ioquatix])
11
+
12
+ ## 2.5.7 (2021-03-04)
13
+
14
+ * [#267](https://github.com/socketry/nio4r/pull/267)
15
+ Don't try to link universal extension
16
+ ([@ioquatix])
17
+
18
+ ## 2.5.6 (2021-03-04)
19
+
20
+ * [#268](https://github.com/socketry/nio4r/pull/268)
21
+ Prefer kqueue when on OSX >= v10.12.2
22
+ ([@jcmfernandes])
23
+
1
24
  ## 2.5.5 (2021-02-05)
2
25
 
3
26
  * [#256](https://github.com/socketry/nio4r/pull/256)
@@ -36,6 +36,26 @@ static VALUE NIO_ByteBuffer_inspect(VALUE self);
36
36
 
37
37
  #define MARK_UNSET -1
38
38
 
39
+ /* Compatibility for Ruby <= 3.1 */
40
+ #ifndef HAVE_RB_IO_DESCRIPTOR
41
+ static int
42
+ io_descriptor_fallback(VALUE io)
43
+ {
44
+ rb_io_t *fptr;
45
+ GetOpenFile(io, fptr);
46
+ return fptr->fd;
47
+ }
48
+ #define rb_io_descriptor io_descriptor_fallback
49
+ #endif
50
+
51
+ static void
52
+ io_set_nonblock(VALUE io)
53
+ {
54
+ rb_io_t *fptr;
55
+ GetOpenFile(io, fptr);
56
+ rb_io_set_nonblock(fptr);
57
+ }
58
+
39
59
  void Init_NIO_ByteBuffer()
40
60
  {
41
61
  mNIO = rb_define_module("NIO");
@@ -281,19 +301,19 @@ static VALUE NIO_ByteBuffer_put(VALUE self, VALUE string)
281
301
  static VALUE NIO_ByteBuffer_read_from(VALUE self, VALUE io)
282
302
  {
283
303
  struct NIO_ByteBuffer *buffer;
284
- rb_io_t *fptr;
285
304
  ssize_t nbytes, bytes_read;
286
305
 
287
306
  Data_Get_Struct(self, struct NIO_ByteBuffer, buffer);
288
- GetOpenFile(rb_convert_type(io, T_FILE, "IO", "to_io"), fptr);
289
- rb_io_set_nonblock(fptr);
307
+
308
+ io = rb_convert_type(io, T_FILE, "IO", "to_io");
309
+ io_set_nonblock(io);
290
310
 
291
311
  nbytes = buffer->limit - buffer->position;
292
312
  if (nbytes == 0) {
293
313
  rb_raise(cNIO_ByteBuffer_OverflowError, "buffer is full");
294
314
  }
295
315
 
296
- bytes_read = read(FPTR_TO_FD(fptr), buffer->buffer + buffer->position, nbytes);
316
+ bytes_read = read(rb_io_descriptor(io), buffer->buffer + buffer->position, nbytes);
297
317
 
298
318
  if (bytes_read < 0) {
299
319
  if (errno == EAGAIN) {
@@ -305,25 +325,24 @@ static VALUE NIO_ByteBuffer_read_from(VALUE self, VALUE io)
305
325
 
306
326
  buffer->position += bytes_read;
307
327
 
308
- return INT2NUM(bytes_read);
328
+ return SIZET2NUM(bytes_read);
309
329
  }
310
330
 
311
331
  static VALUE NIO_ByteBuffer_write_to(VALUE self, VALUE io)
312
332
  {
313
333
  struct NIO_ByteBuffer *buffer;
314
- rb_io_t *fptr;
315
334
  ssize_t nbytes, bytes_written;
316
335
 
317
336
  Data_Get_Struct(self, struct NIO_ByteBuffer, buffer);
318
- GetOpenFile(rb_convert_type(io, T_FILE, "IO", "to_io"), fptr);
319
- rb_io_set_nonblock(fptr);
337
+ io = rb_convert_type(io, T_FILE, "IO", "to_io");
338
+ io_set_nonblock(io);
320
339
 
321
340
  nbytes = buffer->limit - buffer->position;
322
341
  if (nbytes == 0) {
323
342
  rb_raise(cNIO_ByteBuffer_UnderflowError, "no data remaining in buffer");
324
343
  }
325
344
 
326
- bytes_written = write(FPTR_TO_FD(fptr), buffer->buffer + buffer->position, nbytes);
345
+ bytes_written = write(rb_io_descriptor(io), buffer->buffer + buffer->position, nbytes);
327
346
 
328
347
  if (bytes_written < 0) {
329
348
  if (errno == EAGAIN) {
@@ -335,7 +354,7 @@ static VALUE NIO_ByteBuffer_write_to(VALUE self, VALUE io)
335
354
 
336
355
  buffer->position += bytes_written;
337
356
 
338
- return INT2NUM(bytes_written);
357
+ return SIZET2NUM(bytes_written);
339
358
  }
340
359
 
341
360
  static VALUE NIO_ByteBuffer_flip(VALUE self)
data/ext/nio4r/extconf.rb CHANGED
@@ -4,7 +4,10 @@ require "rubygems"
4
4
 
5
5
  # Write a dummy Makefile on Windows because we use the pure Ruby implementation there
6
6
  if Gem.win_platform?
7
- require "devkit" if RUBY_PLATFORM.include?("mingw")
7
+ begin
8
+ require "devkit" if RUBY_PLATFORM.include?("mingw")
9
+ rescue LoadError => e
10
+ end
8
11
  File.write("Makefile", "all install::\n")
9
12
  File.write("nio4r_ext.so", "")
10
13
  exit
@@ -13,6 +16,7 @@ end
13
16
  require "mkmf"
14
17
 
15
18
  have_header("unistd.h")
19
+ have_func("rb_io_descriptor")
16
20
 
17
21
  $defs << "-DEV_USE_LINUXAIO" if have_header("linux/aio_abi.h")
18
22
  $defs << "-DEV_USE_IOURING" if have_header("linux/io_uring.h")
data/ext/nio4r/monitor.c CHANGED
@@ -34,6 +34,18 @@ static VALUE NIO_Monitor_readiness(VALUE self);
34
34
  static int NIO_Monitor_symbol2interest(VALUE interests);
35
35
  static void NIO_Monitor_update_interests(VALUE self, int interests);
36
36
 
37
+ /* Compatibility for Ruby <= 3.1 */
38
+ #ifndef HAVE_RB_IO_DESCRIPTOR
39
+ static int
40
+ io_descriptor_fallback(VALUE io)
41
+ {
42
+ rb_io_t *fptr;
43
+ GetOpenFile(io, fptr);
44
+ return fptr->fd;
45
+ }
46
+ #define rb_io_descriptor io_descriptor_fallback
47
+ #endif
48
+
37
49
  /* Monitor control how a channel is being waited for by a monitor */
38
50
  void Init_NIO_Monitor()
39
51
  {
@@ -81,7 +93,6 @@ static VALUE NIO_Monitor_initialize(VALUE self, VALUE io, VALUE interests, VALUE
81
93
  struct NIO_Monitor *monitor;
82
94
  struct NIO_Selector *selector;
83
95
  ID interests_id;
84
- rb_io_t *fptr;
85
96
 
86
97
  interests_id = SYM2ID(interests);
87
98
 
@@ -97,8 +108,8 @@ static VALUE NIO_Monitor_initialize(VALUE self, VALUE io, VALUE interests, VALUE
97
108
  rb_raise(rb_eArgError, "invalid event type %s (must be :r, :w, or :rw)", RSTRING_PTR(rb_funcall(interests, rb_intern("inspect"), 0)));
98
109
  }
99
110
 
100
- GetOpenFile(rb_convert_type(io, T_FILE, "IO", "to_io"), fptr);
101
- ev_io_init(&monitor->ev_io, NIO_Selector_monitor_callback, FPTR_TO_FD(fptr), monitor->interests);
111
+ io = rb_convert_type(io, T_FILE, "IO", "to_io");
112
+ ev_io_init(&monitor->ev_io, NIO_Selector_monitor_callback, rb_io_descriptor(io), monitor->interests);
102
113
 
103
114
  rb_ivar_set(self, rb_intern("io"), io);
104
115
  rb_ivar_set(self, rb_intern("interests"), interests);
@@ -182,7 +193,7 @@ static VALUE NIO_Monitor_add_interest(VALUE self, VALUE interest)
182
193
  Data_Get_Struct(self, struct NIO_Monitor, monitor);
183
194
 
184
195
  interest = monitor->interests | NIO_Monitor_symbol2interest(interest);
185
- NIO_Monitor_update_interests(self, interest);
196
+ NIO_Monitor_update_interests(self, (int)interest);
186
197
 
187
198
  return rb_ivar_get(self, rb_intern("interests"));
188
199
  }
@@ -193,7 +204,7 @@ static VALUE NIO_Monitor_remove_interest(VALUE self, VALUE interest)
193
204
  Data_Get_Struct(self, struct NIO_Monitor, monitor);
194
205
 
195
206
  interest = monitor->interests & ~NIO_Monitor_symbol2interest(interest);
196
- NIO_Monitor_update_interests(self, interest);
207
+ NIO_Monitor_update_interests(self, (int)interest);
197
208
 
198
209
  return rb_ivar_get(self, rb_intern("interests"));
199
210
  }
data/ext/nio4r/nio4r.h CHANGED
@@ -40,12 +40,6 @@ struct NIO_ByteBuffer {
40
40
  int position, limit, capacity, mark;
41
41
  };
42
42
 
43
- #ifdef GetReadFile
44
- #define FPTR_TO_FD(fptr) (fileno(GetReadFile(fptr)))
45
- #else
46
- #define FPTR_TO_FD(fptr) fptr->fd
47
- #endif /* GetReadFile */
48
-
49
43
  /* Thunk between libev callbacks in NIO::Monitors and NIO::Selectors */
50
44
  void NIO_Selector_monitor_callback(struct ev_loop *ev_loop, struct ev_io *io, int revents);
51
45
 
data/ext/nio4r/selector.c CHANGED
@@ -43,13 +43,13 @@ static VALUE NIO_Selector_closed(VALUE self);
43
43
  static VALUE NIO_Selector_is_empty(VALUE self);
44
44
 
45
45
  /* Internal functions */
46
- static VALUE NIO_Selector_synchronize(VALUE self, VALUE (*func)(VALUE *args), VALUE *args);
46
+ static VALUE NIO_Selector_synchronize(VALUE self, VALUE (*func)(VALUE arg), VALUE arg);
47
47
  static VALUE NIO_Selector_unlock(VALUE lock);
48
- static VALUE NIO_Selector_register_synchronized(VALUE *args);
49
- static VALUE NIO_Selector_deregister_synchronized(VALUE *args);
50
- static VALUE NIO_Selector_select_synchronized(VALUE *args);
51
- static VALUE NIO_Selector_close_synchronized(VALUE *args);
52
- static VALUE NIO_Selector_closed_synchronized(VALUE *args);
48
+ static VALUE NIO_Selector_register_synchronized(VALUE arg);
49
+ static VALUE NIO_Selector_deregister_synchronized(VALUE arg);
50
+ static VALUE NIO_Selector_select_synchronized(VALUE arg);
51
+ static VALUE NIO_Selector_close_synchronized(VALUE arg);
52
+ static VALUE NIO_Selector_closed_synchronized(VALUE arg);
53
53
 
54
54
  static int NIO_Selector_run(struct NIO_Selector *selector, VALUE timeout);
55
55
  static void NIO_Selector_timeout_callback(struct ev_loop *ev_loop, struct ev_timer *timer, int revents);
@@ -62,7 +62,7 @@ static void NIO_Selector_wakeup_callback(struct ev_loop *ev_loop, struct ev_io *
62
62
  #define BUSYWAIT_INTERVAL 0.01
63
63
 
64
64
  /* Selectors wait for events */
65
- void Init_NIO_Selector()
65
+ void Init_NIO_Selector(void)
66
66
  {
67
67
  mNIO = rb_define_module("NIO");
68
68
  cNIO_Selector = rb_define_class_under(mNIO, "Selector", rb_cObject);
@@ -285,7 +285,7 @@ static VALUE NIO_Selector_backend(VALUE self)
285
285
  }
286
286
 
287
287
  /* Synchronize around a reentrant selector lock */
288
- static VALUE NIO_Selector_synchronize(VALUE self, VALUE (*func)(VALUE *args), VALUE *args)
288
+ static VALUE NIO_Selector_synchronize(VALUE self, VALUE (*func)(VALUE arg), VALUE arg)
289
289
  {
290
290
  VALUE current_thread, lock_holder, lock;
291
291
 
@@ -298,10 +298,10 @@ static VALUE NIO_Selector_synchronize(VALUE self, VALUE (*func)(VALUE *args), VA
298
298
  rb_ivar_set(self, rb_intern("lock_holder"), current_thread);
299
299
 
300
300
  /* We've acquired the lock, so ensure we unlock it */
301
- return rb_ensure(func, (VALUE)args, NIO_Selector_unlock, self);
301
+ return rb_ensure(func, (VALUE)arg, NIO_Selector_unlock, self);
302
302
  } else {
303
303
  /* We already hold the selector lock, so no need to unlock it */
304
- return func(args);
304
+ return func(arg);
305
305
  }
306
306
  }
307
307
 
@@ -321,17 +321,18 @@ static VALUE NIO_Selector_unlock(VALUE self)
321
321
  /* Register an IO object with the selector for the given interests */
322
322
  static VALUE NIO_Selector_register(VALUE self, VALUE io, VALUE interests)
323
323
  {
324
- VALUE args[3] = { self, io, interests };
325
- return NIO_Selector_synchronize(self, NIO_Selector_register_synchronized, args);
324
+ VALUE args[3] = {self, io, interests};
325
+ return NIO_Selector_synchronize(self, NIO_Selector_register_synchronized, (VALUE)args);
326
326
  }
327
327
 
328
328
  /* Internal implementation of register after acquiring mutex */
329
- static VALUE NIO_Selector_register_synchronized(VALUE *args)
329
+ static VALUE NIO_Selector_register_synchronized(VALUE _args)
330
330
  {
331
331
  VALUE self, io, interests, selectables, monitor;
332
332
  VALUE monitor_args[3];
333
333
  struct NIO_Selector *selector;
334
334
 
335
+ VALUE *args = (VALUE *)_args;
335
336
  self = args[0];
336
337
  io = args[1];
337
338
  interests = args[2];
@@ -361,15 +362,16 @@ static VALUE NIO_Selector_register_synchronized(VALUE *args)
361
362
  /* Deregister an IO object from the selector */
362
363
  static VALUE NIO_Selector_deregister(VALUE self, VALUE io)
363
364
  {
364
- VALUE args[2] = { self, io };
365
- return NIO_Selector_synchronize(self, NIO_Selector_deregister_synchronized, args);
365
+ VALUE args[2] = {self, io};
366
+ return NIO_Selector_synchronize(self, NIO_Selector_deregister_synchronized, (VALUE)args);
366
367
  }
367
368
 
368
369
  /* Internal implementation of register after acquiring mutex */
369
- static VALUE NIO_Selector_deregister_synchronized(VALUE *args)
370
+ static VALUE NIO_Selector_deregister_synchronized(VALUE _args)
370
371
  {
371
372
  VALUE self, io, selectables, monitor;
372
373
 
374
+ VALUE *args = (VALUE *)_args;
373
375
  self = args[0];
374
376
  io = args[1];
375
377
 
@@ -396,7 +398,6 @@ static VALUE NIO_Selector_is_registered(VALUE self, VALUE io)
396
398
  static VALUE NIO_Selector_select(int argc, VALUE *argv, VALUE self)
397
399
  {
398
400
  VALUE timeout;
399
- VALUE args[2];
400
401
 
401
402
  rb_scan_args(argc, argv, "01", &timeout);
402
403
 
@@ -404,19 +405,19 @@ static VALUE NIO_Selector_select(int argc, VALUE *argv, VALUE self)
404
405
  rb_raise(rb_eArgError, "time interval must be positive");
405
406
  }
406
407
 
407
- args[0] = self;
408
- args[1] = timeout;
409
-
410
- return NIO_Selector_synchronize(self, NIO_Selector_select_synchronized, args);
408
+ VALUE args[2] = {self, timeout};
409
+ return NIO_Selector_synchronize(self, NIO_Selector_select_synchronized, (VALUE)args);
411
410
  }
412
411
 
413
412
  /* Internal implementation of select with the selector lock held */
414
- static VALUE NIO_Selector_select_synchronized(VALUE *args)
413
+ static VALUE NIO_Selector_select_synchronized(VALUE _args)
415
414
  {
416
415
  int ready;
417
416
  VALUE ready_array;
418
417
  struct NIO_Selector *selector;
419
418
 
419
+ VALUE *args = (VALUE *)_args;
420
+
420
421
  Data_Get_Struct(args[0], struct NIO_Selector, selector);
421
422
 
422
423
  if (selector->closed) {
@@ -504,14 +505,13 @@ static VALUE NIO_Selector_wakeup(VALUE self)
504
505
  /* Close the selector and free system resources */
505
506
  static VALUE NIO_Selector_close(VALUE self)
506
507
  {
507
- VALUE args[1] = { self };
508
- return NIO_Selector_synchronize(self, NIO_Selector_close_synchronized, args);
508
+ return NIO_Selector_synchronize(self, NIO_Selector_close_synchronized, self);
509
509
  }
510
510
 
511
- static VALUE NIO_Selector_close_synchronized(VALUE *args)
511
+ static VALUE NIO_Selector_close_synchronized(VALUE self)
512
512
  {
513
513
  struct NIO_Selector *selector;
514
- VALUE self = args[0];
514
+
515
515
  Data_Get_Struct(self, struct NIO_Selector, selector);
516
516
 
517
517
  NIO_Selector_shutdown(selector);
@@ -522,14 +522,13 @@ static VALUE NIO_Selector_close_synchronized(VALUE *args)
522
522
  /* Is the selector closed? */
523
523
  static VALUE NIO_Selector_closed(VALUE self)
524
524
  {
525
- VALUE args[1] = { self };
526
- return NIO_Selector_synchronize(self, NIO_Selector_closed_synchronized, args);
525
+ return NIO_Selector_synchronize(self, NIO_Selector_closed_synchronized, self);
527
526
  }
528
527
 
529
- static VALUE NIO_Selector_closed_synchronized(VALUE *args)
528
+ static VALUE NIO_Selector_closed_synchronized(VALUE self)
530
529
  {
531
530
  struct NIO_Selector *selector;
532
- VALUE self = args[0];
531
+
533
532
  Data_Get_Struct(self, struct NIO_Selector, selector);
534
533
 
535
534
  return selector->closed ? Qtrue : Qfalse;
data/lib/nio/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module NIO
4
- VERSION = "2.5.8"
4
+ VERSION = "2.6.0"
5
5
  end
data/lib/nio4r.rb ADDED
@@ -0,0 +1 @@
1
+ require_relative "nio"
data/lib/nio4r_ext.jar CHANGED
Binary file
data/license.md ADDED
@@ -0,0 +1,66 @@
1
+ # MIT License
2
+
3
+ Copyright, 2011-2020, by Tony Arcieri.
4
+ Copyright, 2012, by Logan Bowers.
5
+ Copyright, 2013, by FURUHASHI Sadayuki.
6
+ Copyright, 2013, by Stephen von Takach.
7
+ Copyright, 2013, by Tim Carey-Smith.
8
+ Copyright, 2013, by brainopia.
9
+ Copyright, 2013, by Luis Lavena.
10
+ Copyright, 2014, by SHIBATA Hiroshi.
11
+ Copyright, 2014, by Sergey Avseyev.
12
+ Copyright, 2014, by JohnnyT.
13
+ Copyright, 2015-2017, by Tiago Cardoso.
14
+ Copyright, 2015, by Daniel Berger.
15
+ Copyright, 2015, by Upekshe.
16
+ Copyright, 2015-2016, by UpeksheJay.
17
+ Copyright, 2015, by Vladimir Kochnev.
18
+ Copyright, 2016-2018, by Jun Aruga.
19
+ Copyright, 2016, by Omer Katz.
20
+ Copyright, 2016-2021, by Olle Jonsson.
21
+ Copyright, 2017, by usa.
22
+ Copyright, 2017, by HoneyryderChuck.
23
+ Copyright, 2017, by tompng.
24
+ Copyright, 2018-2021, by Samuel Williams.
25
+ Copyright, 2019, by Cédric Boutillier.
26
+ Copyright, 2019-2020, by MSP-Greg.
27
+ Copyright, 2019-2020, by Benoit Daloze.
28
+ Copyright, 2019, by Jesús Burgos Maciá.
29
+ Copyright, 2019, by Thomas Kuntz.
30
+ Copyright, 2019, by Orien Madgwick.
31
+ Copyright, 2019, by Thomas Dziedzic.
32
+ Copyright, 2019, by Zhang Kang.
33
+ Copyright, 2020, by eladeyal-intel.
34
+ Copyright, 2020, by Pedro Paiva.
35
+ Copyright, 2020, by Bo.
36
+ Copyright, 2020, by Charles Oliver Nutter.
37
+ Copyright, 2020-2021, by Joao Fernandes.
38
+ Copyright, 2021, by Jun Jiang.
39
+ Copyright, 2021, by Jeffrey Martin.
40
+ Copyright, 2021, by Pavel Lobashov.
41
+
42
+ Permission is hereby granted, free of charge, to any person obtaining a copy
43
+ of this software and associated documentation files (the "Software"), to deal
44
+ in the Software without restriction, including without limitation the rights
45
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
46
+ copies of the Software, and to permit persons to whom the Software is
47
+ furnished to do so, subject to the following conditions:
48
+
49
+ The above copyright notice and this permission notice shall be included in all
50
+ copies or substantial portions of the Software.
51
+
52
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
53
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
54
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
55
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
56
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
57
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
58
+ SOFTWARE.
59
+
60
+ ## libev
61
+
62
+ Released under the BSD license. See [ext/libev/LICENSE] for details.
63
+
64
+ Copyright, 2007-2019, by Marc Alexander Lehmann.
65
+
66
+ [ext/libev/LICENSE]: https://github.com/socketry/nio4r/blob/master/ext/libev/LICENSE
@@ -4,8 +4,7 @@ if defined? JRUBY_VERSION
4
4
  require "rake/javaextensiontask"
5
5
  Rake::JavaExtensionTask.new("nio4r_ext") do |ext|
6
6
  ext.ext_dir = "ext/nio4r"
7
- ext.source_version = "1.8"
8
- ext.target_version = "1.8"
7
+ ext.release = '8'
9
8
  end
10
9
  else
11
10
  require "rake/extensiontask"
@@ -3,7 +3,6 @@
3
3
  [![Gem Version](https://badge.fury.io/rb/nio4r.svg)](http://rubygems.org/gems/nio4r)
4
4
  [![Build Status](https://github.com/socketry/nio4r/workflows/nio4r/badge.svg?branch=master&event=push)](https://github.com/socketry/nio4r/actions?query=workflow:nio4r)
5
5
  [![Code Climate](https://codeclimate.com/github/socketry/nio4r.svg)](https://codeclimate.com/github/socketry/nio4r)
6
- [![Coverage Status](https://coveralls.io/repos/socketry/nio4r/badge.svg?branch=master)](https://coveralls.io/r/socketry/nio4r)
7
6
  [![Yard Docs](https://img.shields.io/badge/yard-docs-blue.svg)](http://www.rubydoc.info/gems/nio4r/2.2.0)
8
7
 
9
8
  **New I/O for Ruby (nio4r)**: cross-platform asynchronous I/O primitives for
@@ -94,40 +93,16 @@ rake release
94
93
  You might need to delete `Gemfile.lock` before trying to `bundle install`.
95
94
 
96
95
  ```
96
+ # Ensure you have the correct JDK:
97
+ pacman -Syu jdk-openjdk
98
+ archlinux-java set java-19-openjdk
99
+
100
+ # Ensure you are using jruby:
101
+ chruby jruby
102
+ bundle update
103
+
104
+ # Build the package:
97
105
  rake clean
98
106
  rake compile
99
107
  rake release
100
108
  ```
101
-
102
- ## License
103
-
104
- Released under the MIT license.
105
-
106
- Copyright, 2019, by Tony Arcieri.
107
- Copyright, 2019, by [Samuel G. D. Williams](http://www.codeotaku.com/samuel-williams).
108
-
109
- Permission is hereby granted, free of charge, to any person obtaining a copy
110
- of this software and associated documentation files (the "Software"), to deal
111
- in the Software without restriction, including without limitation the rights
112
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
113
- copies of the Software, and to permit persons to whom the Software is
114
- furnished to do so, subject to the following conditions:
115
-
116
- The above copyright notice and this permission notice shall be included in
117
- all copies or substantial portions of the Software.
118
-
119
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
120
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
121
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
122
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
123
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
124
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
125
- THE SOFTWARE.
126
-
127
- ### libev
128
-
129
- Released under the BSD license. See [ext/libev/LICENSE] for details.
130
-
131
- Copyright, 2007-2019, by Marc Alexander Lehmann.
132
-
133
- [ext/libev/LICENSE]: https://github.com/socketry/nio4r/blob/master/ext/libev/LICENSE
@@ -1,11 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "spec_helper"
4
+ require "openssl"
4
5
 
5
6
  RSpec.describe OpenSSL::SSL::SSLSocket do
6
-
7
- require "openssl"
8
-
9
7
  before(:all) do
10
8
  @tls = []
11
9
  end
data/spec/spec_helper.rb CHANGED
@@ -1,8 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "coveralls"
4
- Coveralls.wear!
5
-
6
3
  require "nio"
7
4
  require "support/selectable_examples"
8
5
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nio4r
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.5.8
4
+ version: 2.6.0
5
5
  platform: java
6
6
  authors:
7
7
  - Tony Arcieri
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-08-03 00:00:00.000000000 Z
11
+ date: 2023-11-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -17,8 +17,8 @@ dependencies:
17
17
  - !ruby/object:Gem::Version
18
18
  version: '0'
19
19
  name: bundler
20
- type: :development
21
20
  prerelease: false
21
+ type: :development
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
@@ -31,8 +31,8 @@ dependencies:
31
31
  - !ruby/object:Gem::Version
32
32
  version: '0'
33
33
  name: rake
34
- type: :development
35
34
  prerelease: false
35
+ type: :development
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
@@ -50,10 +50,9 @@ files:
50
50
  - ".gitignore"
51
51
  - ".rspec"
52
52
  - ".rubocop.yml"
53
- - CHANGES.md
54
53
  - Gemfile
55
- - README.md
56
54
  - Rakefile
55
+ - changes.md
57
56
  - examples/echo_server.rb
58
57
  - ext/libev/Changes
59
58
  - ext/libev/LICENSE
@@ -87,12 +86,15 @@ files:
87
86
  - lib/nio/monitor.rb
88
87
  - lib/nio/selector.rb
89
88
  - lib/nio/version.rb
89
+ - lib/nio4r.rb
90
90
  - lib/nio4r_ext.jar
91
+ - license.md
91
92
  - logo.png
92
93
  - nio4r.gemspec
93
94
  - rakelib/extension.rake
94
95
  - rakelib/rspec.rake
95
96
  - rakelib/rubocop.rake
97
+ - readme.md
96
98
  - spec/nio/acceptables_spec.rb
97
99
  - spec/nio/bytebuffer_spec.rb
98
100
  - spec/nio/monitor_spec.rb
@@ -109,8 +111,8 @@ licenses:
109
111
  metadata:
110
112
  bug_tracker_uri: https://github.com/socketry/nio4r/issues
111
113
  changelog_uri: https://github.com/socketry/nio4r/blob/master/CHANGES.md
112
- documentation_uri: https://www.rubydoc.info/gems/nio4r/2.5.8
113
- source_code_uri: https://github.com/socketry/nio4r/tree/v2.5.8
114
+ documentation_uri: https://www.rubydoc.info/gems/nio4r/2.6.0
115
+ source_code_uri: https://github.com/socketry/nio4r/tree/v2.6.0
114
116
  wiki_uri: https://github.com/socketry/nio4r/wiki
115
117
  post_install_message:
116
118
  rdoc_options: []
@@ -127,7 +129,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
127
129
  - !ruby/object:Gem::Version
128
130
  version: '0'
129
131
  requirements: []
130
- rubygems_version: 3.0.6
132
+ rubygems_version: 3.3.25
131
133
  signing_key:
132
134
  specification_version: 4
133
135
  summary: New IO for Ruby