Once an event_wait_list pointer is passed to a clEnqueue* function (and the function returns CL_SUCCESS) can the cl_event objects pointed to by event_wait_list be re-assigned to new events, or should none of them be touched until all commands enqueued with that wait list have finished?

For example, say I wanted to enqueue pairs of kernels in a loop (kernel B depends kernel A):