@@ -289,6 +289,7 @@ func (c *rawConnection) Request(ctx context.Context, folder string, name string,
c.awaitingMut.Lock()
if _, ok := c.awaiting[id]; ok {
+ c.awaitingMut.Unlock()
panic("id taken")
}
rc := make(chan asyncResult, 1)
@@ -547,6 +547,7 @@ func (p *Process) eventLoop() {
device := p.id.String()
if device == "" {
+ p.eventMut.Unlock()
panic("race, or startup not complete")
m[device] = version
@@ -251,6 +251,7 @@ func (s *service) Stop() {
s.mut.Lock()
select {
case <-s.ctx.Done():
+ s.mut.Unlock()
panic(fmt.Sprintf("Stop called more than once on %v", s))
default:
s.cancel()