summaryrefslogtreecommitdiff
path: root/thread.c
diff options
context:
space:
mode:
authornormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-01-12 00:15:28 +0000
committernormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-01-12 00:15:28 +0000
commit99886a9121738bdb5ddf321f3e98093b1a48054d (patch)
tree659bcbe8107783579a5b22ee38944a296e4f3df4 /thread.c
parentafe296be78048b491740b3ec360481db8f6e7659 (diff)
thread.c (thread_cleanup_func): document small leak
It's minor, I haven't analyzed how fixable it is, but we should at least note it, here. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61779 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'thread.c')
-rw-r--r--thread.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/thread.c b/thread.c
index 8554f5c1a8..b32817ad0d 100644
--- a/thread.c
+++ b/thread.c
@@ -554,6 +554,10 @@ thread_cleanup_func(void *th_ptr, int atfork)
* Unfortunately, we can't release native threading resource at fork
* because libc may have unstable locking state therefore touching
* a threading resource may cause a deadlock.
+ *
+ * FIXME: Skipping native_mutex_destroy(pthread_mutex_destroy) is safe
+ * with NPTL, but native_thread_destroy calls pthread_cond_destroy
+ * which calls free(3), so there is a small memory leak atfork, here.
*/
if (atfork)
return;