From: Sylvain Joyeux Date: 2005-12-04T23:00:10+09:00 Subject: Strange crash (interpreter bug?) I was trying to fix the busy_handler of the sqlite3. (version 1.1.0 makes the interpreter crash) Rewriting busy_handler in lib/sqlite3/native/driver.rb from def busy_handler( db, data=nil, &block ) if block cb = API::CallbackData.new cb.proc = block cb.data = data end API.sqlite3_busy_handler( db, block ? API::Sqlite3_ruby_busy_handler : nil, cb ) end to def busy_handler( db, data=nil, &block ) if block cb = API::CallbackData.new cb.proc = block cb.data = data API.sqlite3_busy_handler( db, API::Sqlite3_ruby_busy_handler, cb) else API.sqlite3_busy_handler( db, nil, nil) end end fixed the problem (at least on my system) For me, those two functions are strictly equivalent. So ... where's the difference ? -- Sylvain Joyeux