diff options
| author | NARUSE, Yui <naruse@airemix.jp> | 2024-02-01 10:39:54 +0900 |
|---|---|---|
| committer | NARUSE, Yui <naruse@airemix.jp> | 2024-02-01 10:39:54 +0900 |
| commit | 2886564279dff87a6c293f6e80436eb2b309967e (patch) | |
| tree | f9b84a814f865a0e469a7c2a2ffe8289088f00f7 | |
| parent | aeffb5e21de6000a3dcfa0ca88c6ba3c3c42d8db (diff) | |
merge revision(s) 6aacbd690ccde53f9b97c6673482cb11df3f2955: [Backport #20149]
Free pthread_attr after setting up the thread
[bug #20149]
---
ext/socket/raddrinfo.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
| -rw-r--r-- | ext/socket/raddrinfo.c | 12 | ||||
| -rw-r--r-- | version.h | 2 |
2 files changed, 12 insertions, 2 deletions
diff --git a/ext/socket/raddrinfo.c b/ext/socket/raddrinfo.c index 9747f94036..ceaac031a2 100644 --- a/ext/socket/raddrinfo.c +++ b/ext/socket/raddrinfo.c @@ -511,6 +511,11 @@ start: } pthread_detach(th); + int r; + if ((r = pthread_attr_destroy(&attr)) != 0) { + rb_bug_errno("pthread_attr_destroy", r); + } + rb_thread_call_without_gvl2(wait_getaddrinfo, arg, cancel_getaddrinfo, arg); int need_free = 0; @@ -732,12 +737,17 @@ start: #endif pthread_t th; - if (do_pthread_create(&th, 0, do_getnameinfo, arg) != 0) { + if (do_pthread_create(&th, &attr, do_getnameinfo, arg) != 0) { free_getnameinfo_arg(arg); return EAI_AGAIN; } pthread_detach(th); + int r; + if ((r = pthread_attr_destroy(&attr)) != 0) { + rb_bug_errno("pthread_attr_destroy", r); + } + rb_thread_call_without_gvl2(wait_getnameinfo, arg, cancel_getnameinfo, arg); int need_free = 0; @@ -11,7 +11,7 @@ # define RUBY_VERSION_MINOR RUBY_API_VERSION_MINOR #define RUBY_VERSION_TEENY 0 #define RUBY_RELEASE_DATE RUBY_RELEASE_YEAR_STR"-"RUBY_RELEASE_MONTH_STR"-"RUBY_RELEASE_DAY_STR -#define RUBY_PATCHLEVEL 5 +#define RUBY_PATCHLEVEL 6 #include "ruby/version.h" #include "ruby/internal/abi.h" |
