    # File lib/sqlite3/driver/native/driver.rb, line 18
        def busy_handler( db, data=nil, &block )
          if block
            cb = API::CallbackData.new
            cb.proc = block
            cb.data = data
            result = API.sqlite3_busy_handler( db, API::Sqlite3_ruby_busy_handler, cb )
            # Reference the Callback object so that
            # it is not deleted by the GC
            @busy_handler[db] = cb
          else
            # Unreference the callback *after* having removed it
            # from sqlite
            result = API.sqlite3_busy_handler( db, nil, nil )
            @busy_handler.delete(db)
          end

          result
        end