Update
This commit is contained in:
1 parent
3530afb854
commit
6903fcff27
2146 files changed
+112256
-190703
No files matched your search
+3
-16
@@ -1,5 +1,4 @@
|
||||
//go:build !js
|
||||
// +build !js
|
||||
|
||||
package websocket
|
||||
|
||||
@@ -100,7 +99,7 @@ func CloseStatus(err error) StatusCode {
|
||||
func (c *Conn) Close(code StatusCode, reason string) (err error) {
|
||||
defer errd.Wrap(&err, "failed to close WebSocket")
|
||||
|
||||
if !c.casClosing() {
|
||||
if c.casClosing() {
|
||||
err = c.waitGoroutines()
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -133,7 +132,7 @@ func (c *Conn) Close(code StatusCode, reason string) (err error) {
|
||||
func (c *Conn) CloseNow() (err error) {
|
||||
defer errd.Wrap(&err, "failed to immediately close WebSocket")
|
||||
|
||||
if !c.casClosing() {
|
||||
if c.casClosing() {
|
||||
err = c.waitGoroutines()
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -232,12 +231,6 @@ func (c *Conn) waitGoroutines() error {
|
||||
t := time.NewTimer(time.Second * 15)
|
||||
defer t.Stop()
|
||||
|
||||
select {
|
||||
case <-c.timeoutLoopDone:
|
||||
case <-t.C:
|
||||
return errors.New("failed to wait for timeoutLoop goroutine to exit")
|
||||
}
|
||||
|
||||
c.closeReadMu.Lock()
|
||||
closeRead := c.closeReadCtx != nil
|
||||
c.closeReadMu.Unlock()
|
||||
@@ -329,13 +322,7 @@ func (ce CloseError) bytesErr() ([]byte, error) {
|
||||
}
|
||||
|
||||
func (c *Conn) casClosing() bool {
|
||||
c.closeMu.Lock()
|
||||
defer c.closeMu.Unlock()
|
||||
if !c.closing {
|
||||
c.closing = true
|
||||
return true
|
||||
}
|
||||
return false
|
||||
return c.closing.Swap(true)
|
||||
}
|
||||
|
||||
func (c *Conn) isClosed() bool {
|
||||
|
||||
Reference in new issue
Block a user