%begin 
\subsection{Asynchronous \kcode{target} with \kcode{nowait} and \kcode{depend} Clauses}
\label{subsec:async_target_nowait_depend}
\index{target construct@\kcode{target} construct!nowait clause@\kcode{nowait} clause}
\index{target construct@\kcode{target} construct!depend clause@\kcode{depend} clause}
\index{nowait clause@\kcode{nowait} clause}
\index{depend clause@\kcode{depend} clause}
\index{clauses!nowait@\kcode{nowait}}
\index{clauses!depend@\kcode{depend}}

More details on dependences can be found in \specref{sec:task_depend}, Task 
Dependences. In this example, there are three flow dependences.  In the first two dependences the
target task does not execute until the preceding explicit tasks have finished.   These 
dependences are produced by arrays \ucode{v1} and \ucode{v2}  with the \kcode{out} dependence type in the first two tasks, and the \kcode{in} dependence type in the \plc{target task}.   

The last dependence is produced by array \ucode{p}  with the \kcode{out} dependence type in the target task, and the \kcode{in} dependence type in the last task.  The last task does not execute until the target task finishes.  

The \kcode{nowait} clause on the \kcode{target} construct creates a deferrable target task, allowing the encountering task to continue execution without waiting for the completion of the target task.

\cexample[4.5]{async_target}{4}

\ffreeexample[4.5]{async_target}{4}

%end
