Skip to content

Commit 891bb1d

Browse files
committed
Avoid keeping an extrygroup locked
1 parent 35acad7 commit 891bb1d

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

entry_groups.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ func newEntryGroups(avahiServer *avahi.Server) *entryGroups {
2424

2525
func (e *entryGroups) get(containerID string) (*avahi.EntryGroup, func(), error) {
2626
commit := func() {
27+
defer e.mutex.Unlock()
28+
2729
empty, err := e.groups[containerID].IsEmpty()
2830
if err != nil {
2931
log.Logf(log.PriErr, "checking whether Avahi entry group is empty: %v", err)
@@ -35,15 +37,15 @@ func (e *entryGroups) get(containerID string) (*avahi.EntryGroup, func(), error)
3537
log.Logf(log.PriErr, "error committing: %v", err)
3638
}
3739
}
38-
39-
e.mutex.Unlock()
4040
}
4141

4242
e.mutex.Lock()
4343
if _, ok := e.groups[containerID]; !ok {
4444
entryGroup, err := e.avahiServer.EntryGroupNew()
4545
if err != nil {
46-
return nil, commit, fmt.Errorf("error creating new entry group: %w", err)
46+
e.mutex.Unlock()
47+
48+
return nil, func() {}, fmt.Errorf("error creating new entry group: %w", err)
4749
}
4850

4951
e.groups[containerID] = entryGroup

0 commit comments

Comments
 (0)