static IntPtr _libsvnsharp_cancel_func(IntPtr cancelBaton)
        {
            var client = AprBaton <SvnClientContext> .Get(cancelBaton);

            SvnCancelEventArgs ea = new SvnCancelEventArgs();

            try
            {
                client.HandleClientCancel(ea);

                if (ea.Cancel)
                {
                    return(svn_error.svn_error_create(
                               (int)SvnErrorCode.SVN_ERR_CANCELLED,
                               null,
                               "Operation canceled from OnCancel").__Instance);
                }

                return(IntPtr.Zero);
            }
            catch (Exception e)
            {
                return(SvnException.CreateExceptionSvnError("Cancel function", e).__Instance);
            }
            finally
            {
                ea.Detach(false);
            }
        }