cl: add event to sync up kernel and buffer

 * sometimes different kernels need to sync up with each other,
   and buffer read/write also need to wait on kernel excution.
   event can sync them up.
9 files changed