[Mailman-Developers] about qrunner and locking

Barry A. Warsaw barry@digicool.com
Fri, 8 Dec 2000 10:38:12 -0500


    MM> But then comes the question: why does qrunner have to modify
    MM> the list's config.db when it ships a message?  I suppose the
    MM> relevant piece of code in qrunner is:

    |    try:
    |        keepqueued = dispose_message(mlist, msg, msgdata)
    |        # Did the delivery generate child processes?  Don't store them in
    |        # the message data files.
    |        kids = msgdata.get('_kids')
    |        if kids:
    |            allkids.update(kids)
    |            del msgdata['_kids']
    |        if not keepqueued:
    |            # We're done with this message
    |            dequeue(root)

    MM> but I have to admit to not understanding what it does.

This isn't directly related to your problem, but some pipeline modules
can create subprocesses, although the only one that does this
currently is ToUsenet.py.  This code makes sure that all those
children are waited on so they don't zombie.  What /really/ ought to
happen is that there is a separate queue for usenet postings since
once the message is prepared for usenet, it doesn't need to touch the
list database again.

-Barry