Kernel Process Communication

I have a scenario in which I want OpenCL kernel to wait in between and want to execute a piece of code in normal process(could be the host process) and resume the kernel execution after the function in the process completes. What are the ways in which a host process and OpenCL Kernel can communicate(synchronize) with each other? Please if possible provide the links to suitable tutorials.

Thanks in advance.

The only way I know to do this is to end the kernel at the synchronization point, do whatever host-side work that is required and then launch a new kernel.

The only way I know to do this is to end the kernel at the synchronization point, do whatever host-side work that is required and then launch a new kernel.