From 1e34a4f02e8f3743cf4d27117ccaf083a83b4d1f Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Fri, 26 Feb 2010 03:22:44 -0800 Subject: avoid leaks if app uses Rainbows::Fiber::IO For the very rare apps out there using Rainbows::Fiber::IO, the FiberSpawn and FiberPool (but not RevFiberSpawn) models could leak memory if the app-created Rainbows::Fiber::IO objects were dereferenced without being removed from the RD/WR hashes. --- lib/rainbows/fiber/io.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'lib/rainbows/fiber/io.rb') diff --git a/lib/rainbows/fiber/io.rb b/lib/rainbows/fiber/io.rb index 339ac0a..5153070 100644 --- a/lib/rainbows/fiber/io.rb +++ b/lib/rainbows/fiber/io.rb @@ -19,7 +19,9 @@ module Rainbows end def close - to_io.close + RD.delete(self) + WR.delete(self) + to_io.close unless to_io.closed? end def wait_readable -- cgit v1.2.3-24-ge0c7