diff options
author | Samuel Williams <samuel.williams@oriontransfer.co.nz> | 2021-06-19 13:47:16 +1200 |
---|---|---|
committer | Samuel Williams <samuel.williams@oriontransfer.co.nz> | 2021-06-22 22:48:57 +1200 |
commit | 45e65f302b663b2c6ab69df06d3b6f219c1797b2 (patch) | |
tree | adf0ed3b3b9c92626f2c21a320ecdf66998b4c27 /ext/-test- | |
parent | 3deb5d7113e1fd6e4b468e09464d524d390d811e (diff) |
Deprecate and rework old (fd) centric functions.
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/4592
Diffstat (limited to 'ext/-test-')
-rw-r--r-- | ext/-test-/wait_for_single_fd/depend | 165 | ||||
-rw-r--r-- | ext/-test-/wait_for_single_fd/extconf.rb | 8 | ||||
-rw-r--r-- | ext/-test-/wait_for_single_fd/wait_for_single_fd.c | 94 |
3 files changed, 0 insertions, 267 deletions
diff --git a/ext/-test-/wait_for_single_fd/depend b/ext/-test-/wait_for_single_fd/depend deleted file mode 100644 index 2f943245f7..0000000000 --- a/ext/-test-/wait_for_single_fd/depend +++ /dev/null @@ -1,165 +0,0 @@ -# AUTOGENERATED DEPENDENCIES START -wait_for_single_fd.o: $(RUBY_EXTCONF_H) -wait_for_single_fd.o: $(arch_hdrdir)/ruby/config.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/anyargs.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/arithmetic.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/arithmetic/char.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/arithmetic/double.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/arithmetic/int.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/arithmetic/long.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/arithmetic/short.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/assume.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/attr/alloc_size.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/attr/artificial.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/attr/cold.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/attr/const.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/attr/constexpr.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/attr/deprecated.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/attr/error.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/attr/flag_enum.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/attr/forceinline.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/attr/format.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/attr/noalias.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/attr/nodiscard.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/attr/noexcept.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/attr/noinline.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/attr/nonnull.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/attr/noreturn.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/attr/pure.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/attr/restrict.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/attr/warning.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/attr/weakref.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/cast.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/compiler_is.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/compiler_is/apple.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/compiler_is/clang.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/compiler_is/intel.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/compiler_since.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/config.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/constant_p.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/core.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/core/rarray.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/core/rbasic.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/core/rbignum.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/core/rclass.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/core/rdata.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/core/rfile.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/core/rhash.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/core/robject.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/core/rregexp.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/core/rstring.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/core/rstruct.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/core/rtypeddata.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/ctype.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/dllexport.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/dosish.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/error.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/eval.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/event.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/fl_type.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/gc.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/glob.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/globals.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/has/attribute.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/has/builtin.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/has/c_attribute.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/has/extension.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/has/feature.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/has/warning.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/intern/array.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/intern/bignum.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/intern/class.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/intern/compar.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/intern/complex.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/intern/cont.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/intern/dir.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/intern/enum.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/intern/enumerator.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/intern/error.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/intern/eval.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/intern/file.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/intern/gc.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/intern/hash.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/intern/io.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/intern/load.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/intern/marshal.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/intern/numeric.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/intern/object.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/intern/parse.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/intern/proc.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/intern/process.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/intern/random.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/intern/range.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/intern/rational.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/intern/re.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/intern/ruby.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/intern/select.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/intern/select/largesize.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/intern/signal.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/intern/sprintf.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/intern/string.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/intern/struct.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/intern/thread.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/intern/time.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/intern/variable.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/intern/vm.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/interpreter.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/iterator.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/memory.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/method.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/module.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/newobj.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/rgengc.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/scan_args.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/special_consts.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/static_assert.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/stdalign.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/stdbool.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/symbol.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/value.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/value_type.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/variable.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/warning_push.h -wait_for_single_fd.o: $(hdrdir)/ruby/internal/xmalloc.h -wait_for_single_fd.o: $(hdrdir)/ruby/assert.h -wait_for_single_fd.o: $(hdrdir)/ruby/backward.h -wait_for_single_fd.o: $(hdrdir)/ruby/backward/2/assume.h -wait_for_single_fd.o: $(hdrdir)/ruby/backward/2/attributes.h -wait_for_single_fd.o: $(hdrdir)/ruby/backward/2/bool.h -wait_for_single_fd.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h -wait_for_single_fd.o: $(hdrdir)/ruby/backward/2/inttypes.h -wait_for_single_fd.o: $(hdrdir)/ruby/backward/2/limits.h -wait_for_single_fd.o: $(hdrdir)/ruby/backward/2/long_long.h -wait_for_single_fd.o: $(hdrdir)/ruby/backward/2/stdalign.h -wait_for_single_fd.o: $(hdrdir)/ruby/backward/2/stdarg.h -wait_for_single_fd.o: $(hdrdir)/ruby/defines.h -wait_for_single_fd.o: $(hdrdir)/ruby/encoding.h -wait_for_single_fd.o: $(hdrdir)/ruby/intern.h -wait_for_single_fd.o: $(hdrdir)/ruby/io.h -wait_for_single_fd.o: $(hdrdir)/ruby/missing.h -wait_for_single_fd.o: $(hdrdir)/ruby/onigmo.h -wait_for_single_fd.o: $(hdrdir)/ruby/oniguruma.h -wait_for_single_fd.o: $(hdrdir)/ruby/ruby.h -wait_for_single_fd.o: $(hdrdir)/ruby/st.h -wait_for_single_fd.o: $(hdrdir)/ruby/subst.h -wait_for_single_fd.o: wait_for_single_fd.c -# AUTOGENERATED DEPENDENCIES END diff --git a/ext/-test-/wait_for_single_fd/extconf.rb b/ext/-test-/wait_for_single_fd/extconf.rb deleted file mode 100644 index c27100fb42..0000000000 --- a/ext/-test-/wait_for_single_fd/extconf.rb +++ /dev/null @@ -1,8 +0,0 @@ -# frozen_string_literal: false -case RUBY_PLATFORM when /mingw/ then - # skip -else - headers = %w(sys/types.h sys/time.h sys/event.h).select { |h| have_header(h) } - have_func('kqueue', headers) -end -create_makefile("-test-/wait_for_single_fd") diff --git a/ext/-test-/wait_for_single_fd/wait_for_single_fd.c b/ext/-test-/wait_for_single_fd/wait_for_single_fd.c deleted file mode 100644 index b8a33979bc..0000000000 --- a/ext/-test-/wait_for_single_fd/wait_for_single_fd.c +++ /dev/null @@ -1,94 +0,0 @@ -#include "ruby/ruby.h" -#include "ruby/io.h" - -static VALUE -wait_for_single_fd(VALUE ign, VALUE fd, VALUE events, VALUE timeout) -{ - struct timeval tv; - struct timeval *tvp = NULL; - int rc; - - if (!NIL_P(timeout)) { - tv = rb_time_timeval(timeout); - tvp = &tv; - } - - rc = rb_wait_for_single_fd(NUM2INT(fd), NUM2INT(events), tvp); - if (rc == -1) - rb_sys_fail("rb_wait_for_single_fd"); - return INT2NUM(rc); -} - -#ifdef HAVE_KQUEUE -/* ensure rb_wait_for_single_fd works on kqueue descriptors */ -#include <sys/types.h> -#include <sys/time.h> -#include <sys/event.h> -static VALUE -kqueue_test_wait(VALUE klass) -{ - int kqfd = -1; - int p[2] = { -1, -1 }; - struct timeval tv = { 0, 0 }; - const struct timespec ts = { 1, 0 }; - struct kevent kev; - const char *msg; - VALUE ret = Qfalse; - int e = 0; - int n; - - msg = "pipe"; - if (rb_cloexec_pipe(p) < 0) goto err; - - msg = "kqueue"; - kqfd = kqueue(); - if (kqfd < 0) goto err; - - n = rb_wait_for_single_fd(kqfd, RB_WAITFD_IN, &tv); - if (n != 0) { - msg = "spurious wakeup"; - errno = 0; - goto err; - } - - msg = "write"; - if (write(p[1], "", 1) < 0) goto err; - - EV_SET(&kev, p[0], EVFILT_READ, EV_ADD, 0, 0, 0); - - msg = "kevent"; - n = kevent(kqfd, &kev, 1, &kev, 1, &ts); - if (n < 0) goto err; - msg = NULL; - if (n == 1) { - n = rb_wait_for_single_fd(kqfd, RB_WAITFD_IN, &tv); - ret = INT2NUM(n); - } - else { - rb_warn("kevent did not return readiness"); - } -err: - if (msg) e = errno; - if (p[0] >= 0) close(p[0]); - if (p[1] >= 0) close(p[1]); - if (kqfd >= 0) close(kqfd); - if (msg) { - if (e) rb_syserr_fail(e, msg); - rb_raise(rb_eRuntimeError, "%s", msg); - } - return ret; -} -#endif /* HAVE_KQUEUE */ - -void -Init_wait_for_single_fd(void) -{ - rb_define_const(rb_cObject, "RB_WAITFD_IN", INT2NUM(RB_WAITFD_IN)); - rb_define_const(rb_cObject, "RB_WAITFD_OUT", INT2NUM(RB_WAITFD_OUT)); - rb_define_const(rb_cObject, "RB_WAITFD_PRI", INT2NUM(RB_WAITFD_PRI)); - rb_define_singleton_method(rb_cIO, "wait_for_single_fd", - wait_for_single_fd, 3); -#ifdef HAVE_KQUEUE - rb_define_singleton_method(rb_cIO, "kqueue_test_wait", kqueue_test_wait, 0); -#endif -} |