Skip to content

Commit

Permalink
Merge pull request #13 from Teddy-Schmitz/postgres-wait
Browse files Browse the repository at this point in the history
postgres driver should wait for lock
  • Loading branch information
dhui authored Jun 1, 2018
2 parents 3d7b06e + 046d1cb commit 3d1bb8a
Showing 1 changed file with 4 additions and 9 deletions.
13 changes: 4 additions & 9 deletions database/postgres/postgres.go
Original file line number Diff line number Diff line change
Expand Up @@ -131,18 +131,13 @@ func (p *Postgres) Lock() error {

// This will either obtain the lock immediately and return true,
// or return false if the lock cannot be acquired immediately.
query := `SELECT pg_try_advisory_lock($1)`
var success bool
if err := p.conn.QueryRowContext(context.Background(), query, aid).Scan(&success); err != nil {
query := `SELECT pg_advisory_lock($1)`
if _, err := p.conn.ExecContext(context.Background(), query, aid); err != nil {
return &database.Error{OrigErr: err, Err: "try lock failed", Query: []byte(query)}
}

if success {
p.isLocked = true
return nil
}

return database.ErrLocked
p.isLocked = true
return nil
}

func (p *Postgres) Unlock() error {
Expand Down

0 comments on commit 3d1bb8a

Please sign in to comment.