gpt4 book ai didi

Ruby:获取纤维 parent

转载 作者:太空宇宙 更新时间:2023-11-03 16:05:36 25 4
gpt4 key购买 nike

是否可以检索创建当前纤程的纤程?如果我能在创建新 Fiber 时获得这些信息就足够了。

Monkey-patching Fiber#new 不起作用,因为调用 Fiber#current 会导致“未初始化的光纤”错误。

最佳答案

我终于找到了让它工作的方法。如果我们重新定义 initialize 它将失败,因为内部不会初始化 fiber。然而,可以给它起别名,创建一个新的,然后运行旧的:

  class Fiber
alias_method :old_init, :initialize

def initialize
old_init
@parent = Fiber.current
end

def parent
@parent
end
end

由于 Fiber.current 在我们对纤程执行 resume 之前不会更改,因此我们可以安全地在初始化程序中复制引用。

现在我们可以问系统“Who's your grandpa?” Fiber.current.parent.parent.

关于Ruby:获取纤维 parent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14624280/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com