On Wed, Aug 08, 2012 at 02:50:42AM -0600, Eric Faurot wrote: > CVSROOT: /cvs > Module name: src > Changes by: e...@cvs.openbsd.org 2012/08/08 02:50:42 > > Modified files: > usr.sbin/smtpd : bounce.c queue.c scheduler.c > scheduler_backend.c scheduler_ramqueue.c > smtpd.h util.c > > Log message: > Improve the scheduler backend API. > > New envelopes are pushed into the scheduler through the insert() > commit() rollback() transactional interface functions. > > Worklists are pulled from the scheduler through a single batch() > interface function, which returns a list of envelope ids and the > type of processing. Envelopes returned in this batch are said to > be "in-flight", as opposed to "pending". They are supposed to be > processed in some way, and either updated() or deleted() at some > point. > > The schedule()/remove() functions are used to alter the internal > state of "pending" envelopes to make them schedulable. The enve- > lopes will be part of a worklist on the next call to batch(). > > Rewrite the scheduler_ramqueue backend. > > The initial queue loading in now done by the queue. > > ok gilles@ >
We started this work at the hackathon in Budapest and it is quite big which is why it was delayed. You really want to update and test this, it is a huge step forward and we need to kill potential bugs :-) -- Gilles Chehade https://www.poolp.org @poolpOrg