- Do not hold references to old metal objects after metal classes have been reloaded.
- Obtain the reloader lock before building the middleware stack, so that reloading of metal pieces works in the face of multithreading.
[#2873 state:committed]
Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
The Rack body might lazily evaluate its output, which is for example the case
if one calls 'render :text => lambda { ... }'. The code which lazily evaluates
the output might use other application classes. So we will want to defer
cleanup until the Rack request is completely finished.
Signed-off-by: Michael Koziarski <michael@koziarski.com>