fix: 写队列满时 Close 不再与 enqueue 死锁
This commit is contained in:
@@ -1718,3 +1718,13 @@ issue #3 未关闭,`feat/fix-3-downlink-deadlock` 未合入 `main`。下面是
|
||||
- åŽŸå› ï¼šåŽŸå…ˆ 12 项备注写ç�€æœªç©·å°½ä»�æ ‡é€šè¿‡ï¼Œäº¤ä»˜è¯´æ˜Žå†™æˆ�「通过 23ã€�。
|
||||
- 备选方案:为æ¯�个未测å�项补验收用例(本波ä¸�å�šï¼Œé�¿å…�为å�˜ç»¿æ”¾æ�¾æ–言)。
|
||||
- 影�:汇总改为通过 19�部分通过 4(F03/F08/F21/F22)�失败 0。F19 �引用仓库内 SDK 清��本波��跑。
|
||||
|
||||
### ¸´ÉóÐÞ¸´ R3-03
|
||||
|
||||
1. **д¶ÓÁÐÂúʱ Close ²»ÔÙÓë enqueue ËÀËø**
|
||||
- ÈÕÆÚ£º2026-09-30
|
||||
- ÔÌõ¿î£ºissue #67£»Í£»úÐè Drain/Close ÔÚ³¬Ê±ÄÚ·µ»Ø£»ÒÑÈë¶ÓÈÎÎñÈÔÓÉд goroutine ´¦ÀíÍê¡£
|
||||
- ʵ¼Ê×ö·¨£ºQueue Ôö¼Ó closing Ðźš£enqueue ÔÚ³Ö sendMu.RLock ʱ select ͬʱµÈ´ý q.ch¡¢closing Óë ctx.Done()£¬Í¨µÀÂúʱ²»ÔÙÎÞÏÞ×èÈû¡£Close ÏÈ Swap(closed) ²¢ close(closing) »½ÐÑÔÚ;·¢ËÍ·½ÊͷŶÁËø£¬ÔÙÔÚÐ´ËøÄÚ close(q.ch)£¬×îºóµÈ loop Í˳ö¡£²»ÏòÒÑ¹Ø±Õ channel ·¢ËÍ¡£
|
||||
- ÔÒò£ºÍ¨µÀÂúʱ²¢·¢ Do Õ¼×ŶÁËø¶ÂÔÚ·¢ËÍÉÏ£¬Close µÄÐ´ËøÄò»µ½£¬Í£»ú¿¨ËÀ£»Î´Ìá½»µÄÔÚ;дҲ»á¶ª¡£
|
||||
- ±¸Ñ¡·½°¸£ºÈë¶Ó¸ÄΪ·Ç×èÈû£¬ÂúÔòÁ¢¼´ ErrBusy£¨·ñ¾ö£º¸Ä±ä±³Ñ¹ÓïÒ壬Õý³£¸ß·å»áÎóÉËÌá½»£©¡£
|
||||
- Ó°Ï죺½ö internal/store/queue.go Óë²âÊÔ£»²»¸ÄÇ¨ÒÆ±àºÅ¡£
|
||||
|
||||
Reference in New Issue
Block a user