🎨 Concurrency control when requesting the kernel API https://github.com/siyuan-note/siyuan/issues/9939

This commit is contained in:
Daniel 2023-12-22 10:21:15 +08:00
parent c32cad7c3e
commit a190066523
No known key found for this signature in database
GPG key ID: 86211BA83DF03017

View file

@ -28,6 +28,7 @@ import (
"github.com/88250/gulu"
"github.com/gin-gonic/gin"
"github.com/gorilla/websocket"
"github.com/siyuan-note/logging"
"github.com/siyuan-note/siyuan/kernel/util"
"github.com/steambap/captcha"
@ -325,6 +326,11 @@ var (
)
func ControlConcurrency(c *gin.Context) {
if websocket.IsWebSocketUpgrade(c.Request) {
c.Next()
return
}
requestingLock.Lock()
mutex := requesting[c.Request.URL.Path]
if nil == mutex {