From: KOSAKI Motohiro Date: 2012-10-03T02:46:02+09:00 Subject: [ruby-core:47807] Re: [ruby-trunk - Bug #7097][Assigned] Thread locals don't work inside Enumerator >> For example: >> >> Thread[:foo] = :bar >> Fiber.new(derive_fiber_local_storage: true) do >> Thread[:foo] #=> :bar >> end >> >> And use Fiber in enumerator with this option true. > > I think the "true thread local" solution is better than this because I > can use it with existing fiber based code. If a third party library > uses Fibers, and I want thread locals, it would not be possible with > this solution. I'm afraid compatibility breakage. mame-san said: http://bugs.ruby-lang.org/issues/1717 comment#2 > I can't really remember the rationale, but I think that most of > legacy libraries that uses thread-local storage will expect the > storage to be also fiber-local. I'm not surprised old libraries have different assumption with you. share_fiber_local_storage: approach don't break anything. But real question is, Are such old libraries still living in the wild? Who uses? Who know?