From d08ee1ad9b8a1bad1b388165f85f7794a604b8e1 Mon Sep 17 00:00:00 2001 From: rfyiamcool Date: Mon, 22 Jan 2024 13:47:31 +0800 Subject: [PATCH] perf: reduce timer in write_control Signed-off-by: rfyiamcool --- conn_test.go | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/conn_test.go b/conn_test.go index fe95b55..a3dde2d 100644 --- a/conn_test.go +++ b/conn_test.go @@ -148,6 +148,31 @@ func TestFraming(t *testing.T) { } } +func TestConcurrencyWriteControl(t *testing.T) { + const message = "this is a ping/pong messsage" + loop := 10 + workers := 10 + for i := 0; i < loop; i++ { + var connBuf bytes.Buffer + + wg := sync.WaitGroup{} + wc := newTestConn(nil, &connBuf, true) + + for i := 0; i < workers; i++ { + wg.Add(1) + go func() { + defer wg.Done() + if err := wc.WriteControl(PongMessage, []byte(message), time.Now().Add(time.Second)); err != nil { + t.Errorf("concurrently wc.WriteControl() returned %v", err) + } + }() + } + + wg.Wait() + wc.Close() + } +} + func TestControl(t *testing.T) { t.Parallel() const message = "this is a ping/pong messsage"