私は、外部ジョブが終了したときにコールバックをスケジュールするオプションを提供するライブラリを持っています。 Future.set_result()
にこのコールバックを使用するのは安全ですか?そうでない場合は、これを達成するための適切な方法は何ですか? Futureのドキュメントでは、そのメソッドはスレッドセーフではないと言われているので、これに問題があると想定しています。異なるスレッドからのコールバックにasyncio.Futureの値を設定する
私の目標は、PyOpenCLのOpenCLイベントをasyncioコードで待っているオブジェクトとして使用することです。将来の値はコールバックに設定されるべきであると思われる、もう少し徹底的にドキュメントを読んだ後
async def do_slow_stuff():
ev1 = pyopencl.enqueue_something()
ev2 = pyopencl.enqueue_something_else(wait_for=[ev1])
await wrap_opencl_event(ev2)
process_results()