On Friday 26 May 2006 9:41 am, Peter Palmer wrote:

> This is because Mongrel ( I believe ) is single threaded. As it is
> currently running your request before it makes the SOAP call, the soap
> call will block, which of course will block your app too - causing dead
> lock. Not much you can do about this apart from setting up a cluster afaik.

Mongrel is not single threaded, but the Rails handler is because Rails is not 
thread-safe.

This is out of 0.3.12 because that's the code I have immediately handy, but...

@guard.synchronize do
  # Rails is not thread safe so must be run entirely within synchronize
  Dispatcher.dispatch(cgi, 
ActionController::CgiRequest::DEFAULT_SESSION_OPTIONS, response.body)
end


Kirk Haines