When AF_LOCAL bind() fails EADDRINUSE and the thing stats as a socket, try unlinking it. Yes, this has race conditions. They are mild enough for the expected use cases that I consider them tolerable.