module NoSLTD
Constants
- THREAD_LOCAL_KEY
- VERSION
Public Class Methods
recursive() { |: fiber { yield }| ... }
click to toggle source
# File lib/no_sltd.rb, line 5 def self.recursive level = (Thread.current[THREAD_LOCAL_KEY] || 0) Thread.current[THREAD_LOCAL_KEY] = level + 1 out = level < 64 ? yield : Fiber.new { yield }.resume Thread.current[THREAD_LOCAL_KEY] = level out end