On Wed, Apr 14, 2010 at 15:53, Stefan Sperling <s...@elego.de> wrote: > On Wed, Apr 14, 2010 at 12:21:02PM -0400, Greg Stein wrote: >> On Tue, Apr 13, 2010 at 15:45, <s...@apache.org> wrote: >> >... >> > +++ >> > subversion/branches/svn-patch-improvements/subversion/libsvn_client/patch.c >> > Tue Apr 13 19:45:17 2010 >> >... >> > + /* Finally, delete empty directories. */ >> > + for (i = 0; i < empty_dirs->nelts; i++) >> > + { >> > + const char *empty_dir; >> > + >> > + svn_pool_clear(iterpool); >> > + >> > + if (ctx->cancel_func) >> > + SVN_ERR(ctx->cancel_func(ctx->cancel_baton)); > > We do it here ^^^ > >> > + >> > + empty_dir = APR_ARRAY_IDX(empty_dirs, i, const char *); >> > + if (ctx->notify_func2) >> > + { >> > + svn_wc_notify_t *notify; >> > + >> > + notify = svn_wc_create_notify(empty_dir, svn_wc_notify_delete, >> > + iterpool); >> > + (*ctx->notify_func2)(ctx->notify_baton2, notify, iterpool); >> > + } >> > + if (! dry_run) >> > + SVN_ERR(svn_wc_delete4(ctx->wc_ctx, empty_dir, FALSE, FALSE, >> > + NULL, NULL, /* suppress cancellation */ >> > + NULL, NULL, /* suppress notification */ >> > + iterpool)); >> >> I can see suppressing notification, but why cancellation? > > See above. > > It's a bit arbitrary how cancellation is done in the patch code. > It may need a bit of review in this area.
I saw the above, but svn_wc_delete4() also has plenty of loops. Passing along the cancellation will provide for faster cancellation. Cheers, -g