# 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