\begin{frame} \frametitle{Example: ATM Transaction} \begin{exampleblock}{Concurrent ATM Transaction} \begin{tcenter} \begin{tabular}{|l|l|c|} \hline \emph{Transaction 1} & \emph{Transaction 2} & \emph{DB state} \\ \hline & & \\[-1ex] \textcolor{dgreen}{$\fun{slock}(\var{account})$} & & 1200 \\ $\fun{read}(\var{account})$ & & \\ \textcolor{dgreen}{$\fun{unlock}(\var{account})$} & & \\ & \textcolor{dgreen}{$\fun{slock}(\var{account})$} & \\ & $\fun{read}(\var{account})$ & \\ & \textcolor{dgreen}{$\fun{unlock}(\var{account})$} & \\ \textcolor{dgreen}{$\fun{xlock}(\var{account})$} \error & &\\ $\fun{write}(\var{account})$ & & 1100 \\ \textcolor{dgreen}{$\fun{unlock}(\var{account})$} & & \\ & \textcolor{dgreen}{$\fun{xlock}(\var{account})$} \error & \\ & $\fun{write}(\var{account})$ & 1000 \\ & \textcolor{dgreen}{$\fun{unlock}(\var{account})$} & \\ \hline \end{tabular} \end{tcenter} \error Once a lock has been released, no new lock can be acquired. \end{exampleblock} \end{frame}