Changeset 81 in code


Ignore:
Timestamp:
Mar 4, 2020, 7:15:38 PM (5 years ago)
Author:
contact
Message:

Use a RWMutex for DB

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/db.go

    r79 r81  
    33import (
    44        "database/sql"
    5         "errors"
    65        "sync"
    76
     
    2827
    2928type DB struct {
    30         lock sync.Mutex
     29        lock sync.RWMutex
    3130        db   *sql.DB
    3231}
     
    4746
    4847func (db *DB) ListUsers() ([]User, error) {
    49         db.lock.Lock()
    50         defer db.lock.Unlock()
     48        db.lock.RLock()
     49        defer db.lock.RUnlock()
    5150
    5251        rows, err := db.db.Query("SELECT username, password FROM User")
     
    7675
    7776func (db *DB) ListNetworks(username string) ([]Network, error) {
    78         db.lock.Lock()
    79         defer db.lock.Unlock()
     77        db.lock.RLock()
     78        defer db.lock.RUnlock()
    8079
    8180        rows, err := db.db.Query("SELECT id, addr, nick, username, realname FROM Network WHERE user = ?", username)
     
    108107
    109108func (db *DB) ListChannels(networkID int64) ([]Channel, error) {
    110         db.lock.Lock()
    111         defer db.lock.Unlock()
     109        db.lock.RLock()
     110        defer db.lock.RUnlock()
    112111
    113112        rows, err := db.db.Query("SELECT id, name FROM Channel WHERE network = ?", networkID)
Note: See TracChangeset for help on using the changeset viewer.