diff options
Diffstat (limited to 'internal/blocklist/blocklist.go')
| -rw-r--r-- | internal/blocklist/blocklist.go | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/internal/blocklist/blocklist.go b/internal/blocklist/blocklist.go index 364c492..f6e0592 100644 --- a/internal/blocklist/blocklist.go +++ b/internal/blocklist/blocklist.go @@ -94,16 +94,16 @@ func (b *Blocklist) parseRule(line string, blocked, exceptions *trie) bool { return false } func (b *Blocklist) load(scanner *bufio.Scanner) error { - blocked := newTrie() - exceptions := newTrie() - var n int32 + b.mu.Lock() + defer b.mu.Unlock() + var n int32 for scanner.Scan() { line := strings.TrimSpace(scanner.Text()) if line == "" || line[0] == '#' || line[0] == '!' { continue } - if b.parseRule(line, blocked, exceptions) { + if b.parseRule(line, b.blocked, b.exceptions) { n++ } } @@ -111,11 +111,7 @@ func (b *Blocklist) load(scanner *bufio.Scanner) error { return err } - b.mu.Lock() - b.blocked = blocked - b.exceptions = exceptions - b.mu.Unlock() - atomic.StoreInt32(&b.TotalRules, n) + b.TotalRules += n return nil } func (b *Blocklist) LoadURL(url string) error { |
