I did an experiment that may be of interest. I parallelized a stand-alone command line rbl program (1) that can check "a bunch" (I had it check 6) of rbl-ish lists in series. I used pthreads. For non-cached answers the parallel version took about 1.1 to 1.5x as long, for cached answers about 10x as long. Some simple experiments lead me to the conclusion that the pthread creation overhead is very large in comparison to the delay of just waiting for the resolver to get the answer. Compared to forking though, I'd imagine creating a thread is a stroll in the park. I'm going to see if I can hack it up (without the pthreads, tho) to drop into where rblsmtp goes. I'm guessing it will be a zillion times faster. (1) http://www.xnet.com/~emarshal/rblcheck/ -- Aaron Nabil
