ファイバーをスレッドに渡すにはどうすればよいですか?
私がそれを行うことができた唯一の方法は、 との間でキャストすることでした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 をスレッドに渡す正しい方法は何ですか?