Error when recursively doing hash digests

I get the following error sometimes:

ruby(11294) malloc: *** vm_allocate(size=20484096) failed (error code=3)
ruby(11294) malloc: *** error: can't allocate region
ruby(11294) malloc: *** set a breakpoint in szone_error to debug

When doing this recursively on many files:

                               begin
                                        File.open(file, 'rb') do |io|
                                                buf = ""
                                                calc =
Digest::const_get(algorithm.upcase).new
                                                while
io.read(20_480_000, buf)
                                                        calc.update(buf)
                                                end
                                        info = calc.to_s + " " + file
                                        puts info
                                        end
                                rescue
                                end

ruby 1.9.0 (2006-04-06) [powerpc-darwin8.6.0]

···

--
Posted via http://www.ruby-forum.com/.