9.5. オブジェクトのライフサイクル

9.5.1. clRetainMemObject

clRetainMemObject関数はメモリオブジェクト参照カウントをインクリメント。

注記

詳しくは「表:clRetainMemObject」(表B.58「表:clRetainMemObject」)を参照ください。

int org.jocl.CL.clRetainMemObject(
    cl_mem memobj) //(1)

(1)

メモリオブジェクトを指定。

9.5.2. clReleaseMemObject

clReleaseMemObject関数はメモリオブジェクトの参照カウントをデクリメントします。

注記

詳しくは「表:clReleaseMemObject」(表B.59「表:clReleaseMemObject」)を参照ください。

int org.jocl.CL.clReleaseMemObject(
    cl_mem memobj) //(1)

(1)

メモリオブジェクトを指定。

9.5.3. clSetMemObjectDestructorCallback

clSetMemObjectDestructorCallback関数はユーザーコールバック関数をメモリオブジェクトと登録します。

注記

詳しくは「表:clSetMemObjectDestructorCallback」(表B.60「表:clSetMemObjectDestructorCallback」)を参照ください。

ユーザーコールバック関数が実装に呼ばれる際、host_ptrが指すメモリ領域の中身は未定義です(メモリオブジェクトがCL_MEM_USE_HOST_PTRで生成された場合)。コールバック関数は通常、アプリケーションがhost_ptrが指すメモリ領域を再利用または解放するのに使われます。

int org.jocl.CL.clSetMemObjectDestructorCallback(
    cl_mem memobj, //(1)
    MemObjectDestructorCallbackFunction pfn_notify, //(2)
    Object user_data)

(1)

有効なメモリオブジェクトを指定。

(2)

アプリケーションが登録するコールバック関数を指定。この関数はOpenCL実装に非同期で呼び出される。

Copyright 2018-2019, by Masaki Komatsu