From 156c20198ad103a55dbdbc27e07054a385200b29 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 22 Apr 2024 01:17:36 -0400 Subject: [PATCH 1/2] Fix Windows build --- accept.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/accept.go b/accept.go index a5ca5ed..0f199d1 100644 --- a/accept.go +++ b/accept.go @@ -46,7 +46,7 @@ func (s SrtSocket) Accept() (*SrtSocket, *net.UDPAddr, error) { } } var addr syscall.RawSockaddrAny - sclen := C.int(syscall.SizeofSockaddrAny) + sclen := C.int(sizeofSockaddrAny) socket, err := srtAcceptImpl(s.socket, (*C.struct_sockaddr)(unsafe.Pointer(&addr)), &sclen) if err != nil { return nil, nil, err From fab79a40ecb6c377b5a1f86d35d699d4c41d347e Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 22 Apr 2024 01:17:59 -0400 Subject: [PATCH 2/2] Fix poll unblock locks --- poll.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/poll.go b/poll.go index 336f686..a0b5901 100644 --- a/poll.go +++ b/poll.go @@ -239,12 +239,12 @@ func (pd *pollDesc) unblock(mode PollMode, pollerr, ioready bool) { state = &pd.wrState unblockChan = pd.unblockWr } - pd.lock.Lock() - old := atomic.LoadInt32(state) + var old int32 if ioready { - atomic.StoreInt32(state, pollReady) + old = atomic.SwapInt32(state, pollReady) + } else { + old = atomic.LoadInt32(state) } - pd.lock.Unlock() if old == pollWait { //make sure we never block here select {