Roomserver database-wide TransactionWriters (#1282)

* Database-wide TransactionWriter

* Fix deadlocking Sync API tests

* Undo non-roomserver changes for now
This commit is contained in:
Neil Alexander 2020-08-19 10:57:29 +01:00 committed by GitHub
parent e571e196ce
commit 3d58417555
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
15 changed files with 44 additions and 43 deletions

View file

@ -71,10 +71,10 @@ type inviteStatements struct {
selectInvitesAboutToRetireStmt *sql.Stmt
}
func NewSqliteInvitesTable(db *sql.DB) (tables.Invites, error) {
func NewSqliteInvitesTable(db *sql.DB, writer *sqlutil.TransactionWriter) (tables.Invites, error) {
s := &inviteStatements{
db: db,
writer: sqlutil.NewTransactionWriter(),
writer: writer,
}
_, err := db.Exec(inviteSchema)
if err != nil {
@ -124,7 +124,7 @@ func (s *inviteStatements) UpdateInviteRetired(
if err != nil {
return err
}
defer (func() { err = rows.Close() })()
defer internal.CloseAndLogIfError(ctx, rows, "UpdateInviteRetired: rows.close() failed")
for rows.Next() {
var inviteEventID string
if err = rows.Scan(&inviteEventID); err != nil {