httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "William A. Rowe, Jr." <wr...@lnd.com>
Subject RE: Bug Report 5671 - CGI Deadlock
Date Sat, 05 Feb 2000 18:34:26 GMT
Precisely, Dean.

  I'm looking at hacking a full-duplex cgi (targeting 2.0, not 1.3.x!!!)

  My metacode idea is;

  while (get inbuf <- client) {
    write inbuf -> cgi stdinpipe
    while (!empty cgi stdoutpipe)
      read outbuf <- cgi stdoutpipe
      put outbuf -> client
  }
  while (!empty cgi stdoutpipe)
    read outbuf <- cgi stdoutpipe
    put outbuf -> client
  }
  close client connections

  The problem I have is with the size of the pipes.  NT's are VERY small by
default.  I discovered this with a simple CGI writing the client stream back
at the client as a hexdump.

  Limited application?  Perhaps... but it would appear to the browser as a
more async processes flow.  Thresholds would be required... delta time or
size, but I'll think that through if this proves worthwhile.

  Additional thoughts anyone?

Bill

> > --- is it 'legal' to BEGIN transmitting the http result
> > while the client is still trasmitting their request?  (Yes - I
> > know that sounds odd, but I need to determine if the workaround is
> > immediate transmit of response data - or some alternate queuing
> > method to ensure the two streams don't deadlock).
>
> from an http point of view it's legal.  but i think you're
> asking from the
> point of view of a cgi ... and mod_cgi just doesn't support
> full-duplex
> operation.
>
> Dean
>


Mime
View raw message