[Date Prev][Date Next][Thread Prev][Thread Next] [Search] [Date Index] [Thread Index]

Re: [MacPerl] acgi vs cgi (fwd)



According to Strider:
> At 2:44 PM -0500 11/8/97, Chris Nandor wrote:
> >At 13.43 11/8/97, Strider wrote:
> >>If I'm not mistaken, ACGI is Asynchronous Common Gateway Interface, as
> >>opposed to Synchronous. The difference is that an ACGI doesn't wait for one
> >>process to finish before another begins- faster, but it takes more memory
> >>and I don't think it's supported by ALL servers, but any one that's good
> >>(QPQ, WebStar, etc.) do. Even Netpresenz does, if I'm not mistaken.
> >
> >But I'm not sure how this relates to MacPerl, as MacPerl can only execute
> >one at a time anyway, right?
> 
> True, but it has provisions to handle more than one connection at once.
> That's what an ACGI does- it doesn't do multiprocessing. =)

Errr.... I believe you just contradicted yourself.  :-)

You first said ACGI "doesn't wait for one process to finish
before another begins" which is multiprocessing and then
you just said "it doesn't do multiprocessing".

ACGI actually is multiprocessing.  It starts the process
but doesn't wait for it to finish before going to the next
request.  CGI starts a process but waits for that process
to finish before beginning another.  :-)

ACGI does take more overhead.  It's because of having to
set up the Async communication's line which uses whatever
flagging system they are using.  A flag goes up whenever
there is information coming back over the line to the
server.  When the flag is raised, the waitress brings you
more enchiladas, soda, ummm..... sorry got off into
Pancho's mode.  ;-)  Anyway, when the flag is raised the
server then gets the returning information and sends it
back to the user.  Or if the line has timed out, the
process is then sent a die command, the I/O channel is
closed, and an error is sent back to the user.  In any
event, the overhead comes from having to set up the Async
line and having to monitor this line.  CGI doesn't have as
much overhead only because it is working with only one I/O
line at a time.  So as anyone knows - one is always smaller
than two, three, ten, twenty, or whatever.

***** Want to unsubscribe from this list?
***** Send mail with body "unsubscribe" to mac-perl-request@iis.ee.ethz.ch