class FDB::Database

def transact

def transact
  tr = create_transaction
  committed = false
  begin
    ret = yield tr
    # puts ret
    tr.commit.wait
    committed = true
  rescue Error => e
    # puts "Rescued #{e}"
    tr.on_error(e).wait
  end until committed
  ret
end