Sonya Rikhtverchik (rikhtver@OpenMarket.com)
Thu, 19 Jun 1997 10:15:19 -0400

Message-Id: <199706191415.KAA11844@u4-138.openmarket.com>
To: fastcgi-developers@OpenMarket.com
Date: Thu, 19 Jun 1997 10:15:19 -0400
From: Sonya Rikhtverchik <rikhtver@OpenMarket.com>
Subject: <NONE>

X-Sender: joshr@joshr.com
X-Mailer: Windows Eudora Pro Version 3.0.1 (32)
Date: Wed, 18 Jun 1997 17:50:07 -0700
To: root <root@ares.dcc.unicamp.br>, fastcgi-developers@OpenMarket.com,
From: josh rabinowitz <joshr@enternet.com>
Subject: Re: multi-threading!
Cc: adam@netobjects.com, joshr@netobjects.com
In-Reply-To: <33A68789.502359FB@ares.dcc.unicamp.br>

At 09:48 AM 6/17/97 -0300, you wrote:
>According to fast-cgi docs (in the web page), fcgi can
>handle application in two ways: Session affinity and Multi-threading.
>I think session affinity is the usual way. 
>Please, let me know: is multi-threading really available?
>Thank you all! Andre.


[First of all, this is not a flame; I am seriously interested in using 
fcgi once it really handles threads right. Also, I believe my
info is correct, but would not bet the farm on it-- I looked at
fcgi seriously a few months ago.]

When I looked at this, it seemed that the libraries were largely
thread-safe if you were careful, but that the implementation of the 
fcgi library keeps you from reading multiple query strings at once.
(The architecture I believe supports threading, however, so hold your 
breath! :-)

Therefore, a single browser will monopolize a threaded fcgi server 
until that browser's query string is completely read by the fcgi.
I believe this is true even if you write the fcgi as event-driven instead of

(This is discussed in detail at
http://www.fastcgi.com/mail-archive/0504.html )

As I see it, the lack of multithreading
ability severely hampers the usefulness of the fcgi library--
basically making it unsuitable as the heavy-use cgi problem
it was designed to solve.  The workaround I see is to handwrite server
extensions that connect to a (handwritten) truly threaded standalone server.
Maybe someone can write a library to do this generically, or modify
fcgi to do the right thing! (HINT!)

If I got anything above wrong, please do correct me!  (ducking for cover!)

Josh Rabinowitz, Senior Software Engineer

------- End of Forwarded Message