I put a YAS grant in to write a pragma that turns any method-oriented perl package into an asynchronous package by implementing message passing.
There's no general way to set such a thing up, at this time, with the possible exception of using POE.
Would qpsmtpd make sense as a POE widget? Or rather, would writing a POE SMTPD widget that accepts qpsmtpd pluigins make sense?
I was actually thinking of just rewriting the plugin to be asynchronous. It doesn't need to be automated.
It was really more of a practical question, like: "how should I go about writing a non-blocking plugin that communicates with an external resource?"
On 5/10/05, Elliot F <[EMAIL PROTECTED]> wrote:
All,
I'm looking at moving to the high_perf branch, or at least doing dev on it, as it looks promising and educational. I have used some of my plugins for "normal" qpsmtpd with high_perf, but blocking occurs. While this isn't an issue for a smaller server, I imagine it would scale rather poorly.
What recommendations do you have for writing asynchronous plugins? Is that what would be needed in this case, or am I making it overly complex?
Elliot
There's also the possibility of pre-forking, so there are a pool of processes, each handling connections, all listening at the same socket, each waiting for synchronous results from the other connections handled by the same process
How would the pre-fork work with the high_perf branch? Or is this a suggestion of YAQM (Yet Another Qpsmtpd Method)? :) It seems that this is pretty much what the Apache qpsmtpd deployment is...
