summaryrefslogtreecommitdiff
path: root/sd_daemon/notify_nonlinux.go
diff options
context:
space:
mode:
Diffstat (limited to 'sd_daemon/notify_nonlinux.go')
-rw-r--r--sd_daemon/notify_nonlinux.go7
1 files changed, 4 insertions, 3 deletions
diff --git a/sd_daemon/notify_nonlinux.go b/sd_daemon/notify_nonlinux.go
index d09cef0..dc268d3 100644
--- a/sd_daemon/notify_nonlinux.go
+++ b/sd_daemon/notify_nonlinux.go
@@ -99,6 +99,8 @@ func (msg Notification) send(unsetEnv bool) error {
// the high-level interface of "net", and messing around with FileConn
// and UnixConn. Maybe we just drop to using unix.Socket and
// unix.SendmsgN directly.
+//
+// See: net/sys_cloexec.go:sysSocket()
func socketUnixgram(name string) (*net.UnixConn, error) {
syscall.ForkLock.RLock()
fd, err := unix.Socket(unix.AF_UNIX, unix.SOCK_DGRAM, 0)
@@ -110,9 +112,8 @@ func socketUnixgram(name string) (*net.UnixConn, error) {
return nil, os.NewSyscallError("socket", err)
}
defer unix.Close(fd)
- if err = unix.SetNonblock(fd, true); err != nil {
- return nil, os.NewSyscallError("setnonblock", err)
- }
+ // Don't bother calling unix.SetNonblock(), net.FileConn()
+ // will call syscall.SetNonblock().
conn, err := net.FileConn(os.NewFile(uintptr(fd), name))
if err != nil {
return nil, err