2

ファイバーをスレッドに渡すにはどうすればよいですか?

私がそれを行うことができた唯一の方法は、 との間でキャストすることでした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共有ファイバーを呼び出すことができなかったため、ファイバーにキャストし直す必要がありました。

Fibera をスレッドに渡す正しい方法は何ですか?

4

1 に答える 1