Hi,
I wanted to share my findings about @lock.synchronize, used in
invoke_with_call_chain.
This method is implemented as
def mon_synchronize
mon_enter
begin
yield
ensure
mon_exit
end
end
The downside here is that creating a block requires resources and since
the body of this particular block creates a potentially large recursion
(esp. in Buildr), this can end up waisting a lot of memory. In my case,
replacing:
@lock.synchronize do
...
end
with
begin
@lock.mon_enter
....
ensure
@lock.mon_exit
end
made the difference between a segmentation fault and a successful build.
ittay
--
--
Ittay Dror <[EMAIL PROTECTED]>
_______________________________________________
Rake-devel mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rake-devel