luvit / luv

Bare libuv bindings for lua
Apache License 2.0
831 stars 187 forks source link

ci: handle EBUSY for udp #706

Closed zhaozg closed 5 months ago

zhaozg commented 5 months ago

I have checked libuv/src/unix/udp.c and libuv/src/unix/darwin.c, can't point out the immediate cause of EBUSY when call uv_udp_set_source_membership.

I have check open, bind, setsockopt,..., the return code not mention EBUSY.

I checked https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/intro.2.html get some thing about EBUSY. That means Resource busy. An attempt to use a system resource which was in use at the time in a manner which would have conflicted with the request. So we do some retry should be safe and can fix and close #704.