public static void HandleSocketCompletion(SocketCompletion c, int ret) { var current = c.thr; if (ret < 0) { current.ReturnFromCompletion(ret); return; } var proc = current.Parent; var inode = new SocketINode(ret, proc.helperPid); var file = new File(proc, inode, FileFlags.ReadWriteMask, 0); var fd = proc.GetUnusedFd(); proc.InstallFd(fd, file); current.ReturnFromCompletion(fd); }