我想知道如何将纤维传递给线程?
我设法做到这一点的唯一方法是从shared
.
auto fiber = new Fiber((){
});
auto t = spawn((){
auto fib = cast(Fiber)receiveOnly!(shared(Fiber));
writeln("fib");
fib.call();
});
send(t, cast(shared(Fiber))fiber);
但这似乎不对。我想我不完全理解shared
.
我不得不将纤维投射到共享,因为没有它我不允许将它发送到线程。我不得不将它转换回光纤,因为我无法调用Fiber.call
共享光纤。
Fiber
将 a 传递给线程的正确方法是什么?