Nice! What is LMTP?
Regarding create_nbprocess:
o Have considered passing the extra arguments through the mapping instead? To me it seems cleaner now when Process.create_process already has left position-based argument passing in favor of a mapping.
o I also note that create_nbprocess bluntly overrides the "stdin" and "stdout" arguments. Preferably it shouldn't, but if it has to then it must be mentioned.
Btw, what's the reason for supplying an stdin pipe at all?
o Ideally I'd like to see this functionality directly in Process.create_process, but I guess it's a bit too much for you to integrate it on the C level. Maybe we could rename the current Process.create_process to something like Process._create_process and then add a Pike level wrapper with this and other goodies?
o You don't need to do remove_call_out of the call out itself inside it; they are one-shot.
o Avoid storing a reference to the object inside itself (i.e. the "process" variable). That makes a circular reference which means more work for the gc. (In 7.5 there's a special hack that avoids counting such references to itself, but it's good practice to try to avoid it anyway since it's not always that hack can discover a cyclic reference.)
/ Martin Stjernholm, Roxen IS
Previous text:
2003-09-19 23:50: Subject: Contribution
Hi there,
I'd like to contribute the following modules to Pike:
. A non blocking SMTP/LMTP server API. I borrowed some code from a SMTP server for Roxen copyright Mike Knott, David Hedbor and On The Verge these parts are protected under the GPL version 2. I'd like to know if the Pike team and them agree or not for the addition. For now I did not really test the SMTP server facing the real Internet world. However I use the LMTP server (which inherit the SMTP server) for some months now on a production server behind a Postfix server.
. A non blocking process starter with the features of Process.create_process without the need to use the wait() of Process.spawn (it works with callback functions).
-- David Gourdelier
/ Brevbäraren