diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/packages.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/packages.c b/src/packages.c index 290565157..67b18c060 100644 --- a/src/packages.c +++ b/src/packages.c @@ -217,7 +217,15 @@ void process_queue(void) { action_todo = cipaction->arg_int; - if (sincenothing++ > queue.length * 2 + 2) { + if (sincenothing++ > queue.length * 3 + 2) { + /* Make sure that even if we have exceeded the queue since not having + * made any progress, we are not getting stuck trying to progress by + * trigger processing, w/o jumping into the next dependtry. */ + dependtry++; + sincenothing = 0; + assert(dependtry <= 4); + } else if (sincenothing > queue.length * 2 + 2) { + /* XXX: This probably needs moving into a new dependtry instead. */ if (progress_bytrigproc && progress_bytrigproc->trigpend_head) { enqueue_package(pkg); pkg = progress_bytrigproc; |