Skip to content

Commit 2402892

Browse files
committed
simplify
1 parent 9038cb6 commit 2402892

2 files changed

Lines changed: 14 additions & 35 deletions

File tree

internal/watcher/pattern.go

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,8 @@ import (
1818
"github.com/dunglas/frankenphp/internal/fastabs"
1919
)
2020

21-
type patternGroup struct {
22-
callback callbackFunc
23-
}
24-
2521
type pattern struct {
26-
patternGroup *patternGroup
22+
patternGroup *PatternGroup
2723
value string
2824
parsedValues []string
2925
events chan eventHolder
@@ -33,10 +29,6 @@ type pattern struct {
3329
}
3430

3531
func (p *pattern) startSession() error {
36-
if p.value == "" {
37-
return nil
38-
}
39-
4032
p.h = cgo.NewHandle(p)
4133
cDir := C.CString(p.value)
4234
defer C.free(unsafe.Pointer(cDir))
@@ -61,10 +53,6 @@ func (p *pattern) startSession() error {
6153

6254
// this method prepares the pattern struct (aka /path/*pattern)
6355
func (p *pattern) parse() (err error) {
64-
if p.value == "" {
65-
return nil
66-
}
67-
6856
// first we clean the value
6957
absPattern, err := fastabs.FastAbs(p.value)
7058
if err != nil {
@@ -128,10 +116,6 @@ func (p *pattern) handle(event *Event) {
128116
}
129117

130118
func (p *pattern) stop() {
131-
if p.value == "" {
132-
return
133-
}
134-
135119
if C.stop_watcher(p.watcher) == 0 && globalLogger.Enabled(globalCtx, slog.LevelWarn) {
136120
globalLogger.LogAttrs(globalCtx, slog.LevelWarn, "couldn't close the watcher")
137121
}

internal/watcher/watcher.go

Lines changed: 13 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,12 @@ var (
3737
)
3838

3939
type eventHolder struct {
40-
patternGroup *patternGroup
40+
patternGroup *PatternGroup
4141
event *Event
4242
}
4343

4444
type globalWatcher struct {
45+
groups []*PatternGroup
4546
watchers []*pattern
4647
events chan eventHolder
4748
stop chan struct{}
@@ -60,17 +61,11 @@ func InitWatcher(ct context.Context, slogger *slog.Logger, groups []*PatternGrou
6061
globalCtx = ct
6162
globalLogger = slogger
6263

63-
activeWatcher = &globalWatcher{}
64+
activeWatcher = &globalWatcher{groups: groups}
6465

6566
for _, g := range groups {
66-
pg := &patternGroup{callback: g.Callback}
67-
68-
if len(g.Patterns) == 0 {
69-
activeWatcher.watchers = append(activeWatcher.watchers, &pattern{patternGroup: pg})
70-
} else {
71-
for _, p := range g.Patterns {
72-
activeWatcher.watchers = append(activeWatcher.watchers, &pattern{patternGroup: pg, value: p})
73-
}
67+
for _, p := range g.Patterns {
68+
activeWatcher.watchers = append(activeWatcher.watchers, &pattern{patternGroup: g, value: p})
7469
}
7570
}
7671

@@ -177,7 +172,7 @@ func (g *globalWatcher) listenForFileEvents() {
177172
timer := time.NewTimer(debounceDuration)
178173
timer.Stop()
179174

180-
eventsPerGroup := make(map[*patternGroup][]*Event)
175+
eventsPerGroup := make(map[*PatternGroup][]*Event, len(g.groups))
181176

182177
defer timer.Stop()
183178
for {
@@ -201,22 +196,22 @@ func (g *globalWatcher) listenForFileEvents() {
201196
}
202197

203198
g.scheduleReload(eventsPerGroup)
204-
eventsPerGroup = make(map[*patternGroup][]*Event)
199+
eventsPerGroup = make(map[*PatternGroup][]*Event, len(g.groups))
205200
}
206201
}
207202
}
208203

209-
func (g *globalWatcher) scheduleReload(eventsPerGroup map[*patternGroup][]*Event) {
204+
func (g *globalWatcher) scheduleReload(eventsPerGroup map[*PatternGroup][]*Event) {
210205
reloadWaitGroup.Add(1)
211206

212207
// Call callbacks in order
213-
for _, w := range g.watchers {
214-
if w.value == "" {
215-
w.patternGroup.callback(nil)
208+
for _, g := range g.groups {
209+
if len(g.Patterns) == 0 {
210+
g.Callback(nil)
216211
}
217212

218-
if e, ok := eventsPerGroup[w.patternGroup]; ok {
219-
w.patternGroup.callback(e)
213+
if e, ok := eventsPerGroup[g]; ok {
214+
g.Callback(e)
220215
}
221216
}
222217

0 commit comments

Comments
 (0)