summaryrefslogtreecommitdiff
path: root/src/trigproc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/trigproc.c')
-rw-r--r--src/trigproc.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/trigproc.c b/src/trigproc.c
index bcecac50b..965e5c597 100644
--- a/src/trigproc.c
+++ b/src/trigproc.c
@@ -332,9 +332,14 @@ trigproc(struct pkginfo *pkg)
assert(pkg->status == PKG_STAT_TRIGGERSPENDING ||
pkg->status == PKG_STAT_TRIGGERSAWAITED);
- if (dependtry > 1)
+ if (dependtry > 1) {
+ gaveup = check_trigger_cycle(pkg);
+ if (gaveup == pkg)
+ return;
+
if (findbreakcycle(pkg))
sincenothing = 0;
+ }
ok = dependencies_ok(pkg, NULL, &depwhynot);
if (ok == DEP_CHECK_DEFER) {
@@ -352,9 +357,11 @@ trigproc(struct pkginfo *pkg)
varbuf_destroy(&depwhynot);
}
- gaveup = check_trigger_cycle(pkg);
- if (gaveup == pkg)
- return;
+ if (dependtry <= 1) {
+ gaveup = check_trigger_cycle(pkg);
+ if (gaveup == pkg)
+ return;
+ }
printf(_("Processing triggers for %s (%s) ...\n"),
pkg_name(pkg, pnaw_nonambig),