2017-06-16 9 views
0

私がstandardを誤解していない場合、ユーザーイベントを再利用したい場合、これはできず、新しいイベントを作成する必要があります(clReleaseEvent() + clCreateUserEvent())。詳細はclSetUserEventStatus()を何度も使用できないのはなぜですか?

​​はイベントの実行 ステータスを変更するために、一度呼び出すことができます。

今、好奇心のために:なぜそうですか?それは設計上の決定か、それとも私が得られない何らかの特定の理由によるものか?

答えて

1

私が登録したとの問題(これは潜在的にいくつかの予期せぬ結果を招くとバグを引き起こす可能性など、この制限は、OpenCLのユーザーイベントがCL_COMPLETEである状況から保護することがあることを推測し、その後CL_RUNNINGし、再度CL_COMPLETEコールバック?)。

+0

私はあなたの意見を聞いていますが、これが理由であれば、なぜ非ユーザイベントでも同じではないのですか?つまり、非ユーザイベントを何度も何度も再利用することができます。 – Nicola

+0

非ユーザイベント( 'cl_event')にハンドルを再利用できますが、基本イベントは再利用されません。各OpenCL APIの呼び出し後、ハンドルは異なるイベントを指します。しかし、ユーザが作成したイベントの場合は、 'clCreateUserEvent'を使って独自のイベントを作成します。そのため、イベントを再利用することができます。 'clReleaseEvent'で根底にあるイベントを解放した後も、後であなたがユーザイベントに使用した' cl_event'ハンドルを再利用することができます。 – haahh

関連する問題