소스 검색

fix a deadlock

Darien Raymond 7 년 전
부모
커밋
ee0ca6cbd2
1개의 변경된 파일2개의 추가작업 그리고 1개의 파일을 삭제
  1. 2 1
      app/proxyman/inbound/worker.go

+ 2 - 1
app/proxyman/inbound/worker.go

@@ -328,6 +328,8 @@ func (w *udpWorker) Start() error {
 		Execute: func() error {
 			nowSec := time.Now().Unix()
 			w.Lock()
+			defer w.Unlock()
+
 			if len(w.activeConn) == 0 {
 				return nil
 			}
@@ -342,7 +344,6 @@ func (w *udpWorker) Start() error {
 			if len(w.activeConn) == 0 {
 				w.activeConn = make(map[connID]*udpConn, 16)
 			}
-			w.Unlock()
 
 			return nil
 		},