[前][次][番号順一覧][スレッド一覧]

ruby-changes:63430

From: Nobuyoshi <ko1@a...>
Date: Sun, 25 Oct 2020 22:07:50 +0900 (JST)
Subject: [ruby-changes:63430] 25a332f5cf (master): Fix compilation on MSVC

https://git.ruby-lang.org/ruby.git/commit/?id=25a332f5cf

From 25a332f5cf295e4b72814c39d87b4b3e2967dd68 Mon Sep 17 00:00:00 2001
From: Nobuyoshi Nakada <nobu@r...>
Date: Sun, 25 Oct 2020 22:06:44 +0900
Subject: Fix compilation on MSVC

* cast scalar value instead of function
* use `rb_pid_t` for the portability

diff --git a/spec/ruby/optional/capi/ext/thread_spec.c b/spec/ruby/optional/capi/ext/thread_spec.c
index 845c022..11379bb 100644
--- a/spec/ruby/optional/capi/ext/thread_spec.c
+++ b/spec/ruby/optional/capi/ext/thread_spec.c
@@ -73,20 +73,15 @@ static void* blocking_gvl_func_for_udf_io(void *data) { https://github.com/ruby/ruby/blob/trunk/spec/ruby/optional/capi/ext/thread_spec.c#L73
   }
 }
 
-#if defined(__GNUC__) || defined(__clang__)
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wcast-function-type"
-#endif
+static void* ubf_pid(void *_) {
+  return (void *) (SIGNED_VALUE) getpid();
+}
 
 static VALUE thread_spec_rb_thread_call_without_gvl_native_function(VALUE self) {
-  pid_t ret = (pid_t) (long) rb_thread_call_without_gvl((void *(*)(void *)) getpid, 0, RUBY_UBF_IO, 0);
+  rb_pid_t ret = (rb_pid_t) (SIGNED_VALUE) rb_thread_call_without_gvl(ubf_pid, 0, RUBY_UBF_IO, 0);
   return LONG2FIX(ret);
 }
 
-#if defined(__GNUC__) || defined(__clang__)
-#pragma GCC diagnostic pop
-#endif
-
 /* Returns true if the thread is interrupted. */
 static VALUE thread_spec_rb_thread_call_without_gvl_with_ubf_io(VALUE self) {
   int fds[2];
-- 
cgit v0.10.2


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]