~ubuntu-branches/ubuntu/maverick/postfix/maverick-security

« back to all changes in this revision

Viewing changes to src/qmgr/qmgr_queue.c

  • Committer: Bazaar Package Importer
  • Author(s): LaMont Jones, Wietse Venema, LaMont Jones
  • Date: 2009-06-03 14:17:08 UTC
  • mfrom: (1.1.22 upstream)
  • Revision ID: james.westby@ubuntu.com-20090603141708-o9u59xlor7nmd2x1
[Wietse Venema]

* New upstream release: 2.6.2~rc1

[LaMont Jones]

* move postfix-add-{filter,policy} manpages to section 8, and deliver
* provide: default-mta on ubuntu

Show diffs side-by-side

added added

removed removed

Lines of Context:
66
66
/*      "slow open" mode, and eliminates the "thundering herd" problem.
67
67
/*
68
68
/*      qmgr_queue_suspend() suspends delivery for this destination
69
 
/*      briefly.
 
69
/*      briefly. This function invalidates any scheduling decisions
 
70
/*      that are based on the present queue's concurrency window.
 
71
/*      To compensate for work skipped by qmgr_entry_done(), the
 
72
/*      status of blocker jobs is re-evaluated after the queue is
 
73
/*      resumed.
70
74
/* DIAGNOSTICS
71
75
/*      Panic: consistency check failure.
72
76
/* LICENSE
152
156
    /*
153
157
     * Every event handler that leaves a queue in the "ready" state should
154
158
     * remove the queue when it is empty.
 
159
     * 
 
160
     * XXX Do not omit the redundant test below. It is here to simplify code
 
161
     * consistency checks. The check is trivially eliminated by the compiler
 
162
     * optimizer. There is no need to sacrifice code clarity for the sake of
 
163
     * performance.
 
164
     * 
 
165
     * XXX Do not expose the blocker job logic here. Rate-limited queues are not
 
166
     * a performance-critical feature. Here, too, there is no need to sacrifice
 
167
     * code clarity for the sake of performance.
155
168
     */
156
169
    if (QMGR_QUEUE_READY(queue) && queue->todo.next == 0 && queue->busy.next == 0)
157
170
        qmgr_queue_done(queue);
 
171
    else
 
172
        qmgr_job_blocker_update(queue);
158
173
}
159
174
 
160
175
/* qmgr_queue_suspend - briefly suspend a destination */