does clEnqueueBarrierWithWaitList() works in sync or async mode?

according to OpenCL1.2 Spec, I think API clEnqueueBarrierWithWaitList( cl_command_queue command_queue , cl_uint num_events_in_wait_list , const cl_event *event_wait_list , cl_event *event) should work in async mode,
that if there are several valid events in event_wait_list in this API invoking, don’t think the CL_EVENT_COMMAND_EXECUTION_STATUS of eventInfo for event is CL_COMPLETE at once of clEnqueueBarrierWithWaitList returned.
but do get the CL_EVENT_COMMAND_EXECUTION_STATUS of event as CL_COMPLETE, which indicates this API works in sync mode that returning after completing all the event in waiting list.

please help check this behavoir or correct me, thanks a lot in advance.

my setup is 1080TI for OpenCL1.2.