[#64703] Add `Hash#fetch_at` (issue #10017) — Wojtek Mach <wojtek@...>
Hey guys
1 message
2014/09/01
[#64711] [ruby-trunk - Bug #10193] [Closed] TestIO#test_readpartial_locktmp fails randomly — nobu@...
Issue #10193 has been updated by Nobuyoshi Nakada.
3 messages
2014/09/02
[#64744] [ruby-trunk - Bug #10202] [Open] TestBenchmark#test_realtime_output breaks on ARM — v.ondruch@...
Issue #10202 has been reported by Vit Ondruch.
3 messages
2014/09/03
[#64823] documenting constants — Xavier Noria <fxn@...>
I am writing a Rails guide about constant autoloading in Ruby on
5 messages
2014/09/07
[#64838] [ruby-trunk - Bug #10212] [Open] MRI is not for lambda calculus — ko1@...
Issue #10212 has been reported by Koichi Sasada.
6 messages
2014/09/08
[#64858] Re: [ruby-trunk - Bug #10212] [Open] MRI is not for lambda calculus
— Eric Wong <normalperson@...>
2014/09/08
rb_env_t may use a flexible array, helps a little even on my busy system:
[#64871] Re: [ruby-trunk - Bug #10212] [Open] MRI is not for lambda calculus
— SASADA Koichi <ko1@...>
2014/09/08
(2014/09/08 19:48), Eric Wong wrote:
[#64972] [ruby-trunk - Bug #10231] [Open] Process.detach(pid) defines new singleton classes every call — headius@...
Issue #10231 has been reported by Charles Nutter.
3 messages
2014/09/11
[#64980] [ruby-trunk - Bug #10212] MRI is not for lambda calculus — ko1@...
Issue #10212 has been updated by Koichi Sasada.
4 messages
2014/09/12
[#65142] [ruby-trunk - Feature #10267] [Open] Number of processors — akr@...
Issue #10267 has been reported by Akira Tanaka.
4 messages
2014/09/20
[#65144] Re: [ruby-trunk - Feature #10267] [Open] Number of processors
— Eric Wong <normalperson@...>
2014/09/20
akr@fsij.org wrote:
[#65210] [ruby-trunk - misc #10278] [Assigned] [RFC] st.c: use ccan linked list — nobu@...
Issue #10278 has been updated by Nobuyoshi Nakada.
3 messages
2014/09/22
[ruby-core:65049] [ruby-trunk - Bug #10231] Process.detach(pid) defines new singleton classes every call
From:
headius@...
Date:
2014-09-15 19:00:20 UTC
List:
ruby-core #65049
Issue #10231 has been updated by Charles Nutter. Eric Wong wrote: > I prefer deliberately leaving out Process::Waiter and Thread references, > since I think we may be able to avoid Thread creation entirely in the > future (not sure if it's worth the effort). FWIW, JVM always does a waiter thread to avoid multiple calls to waitpid (which as you know returns results exactly once). The waiter thread is not unusual in that regard. It's probably possible to avoid the thread and make concurrent waiters just wait on a mutex too... def wait_for_process @mutex.lock @result ||= waitpid ensure @mutex.unlock end Not sure what wrenches this throws into UNIX-style process management, though. Note that JVM's subprocess logic also has threads draining the child's streams into an in-memory buffer. I do NOT recommend that. In JRuby 9k we no longer use the JVM's subprocess logic. ---------------------------------------- Bug #10231: Process.detach(pid) defines new singleton classes every call https://bugs.ruby-lang.org/issues/10231#change-48920 * Author: Charles Nutter * Status: Closed * Priority: Normal * Assignee: Eric Wong * Category: core * Target version: current: 2.2.0 * ruby -v: Any version with Process.detach * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN ---------------------------------------- The logic for Process.detach(pid) adds a singleton "pid" method to the thread it returns for every call. This is bad for method caches (MRI still flushes them all for this, I believe) and memory churn (singleton classes are not small). The offending line of code is here: https://github.com/ruby/ruby/blob/trunk/process.c#L1041 I would suggest that Process.detach should return a subclass of Thread that has the pid method defined ahead of time. It also stores the value in thread local storage, rather than as an instance variable. I'm not sure why. -- https://bugs.ruby-lang.org/