That looks good to me. -Paul [the paranoid portability policeman]
On Thu, Apr 24, 2014 at 3:41 AM, Jeff Squyres (jsquyres) <jsquy...@cisco.com > wrote: > On Apr 23, 2014, at 6:38 PM, Paul Hargrove <phhargr...@lbl.gov> wrote: > > > -Paul [Who always does what the late W. Richard Stevens says to.] > > You make a good point, sir. How about this? > > diff --git a/src/topology-linux.c b/src/topology-linux.c > index 25fb465..c9dc7e2 100644 > --- a/src/topology-linux.c > +++ b/src/topology-linux.c > @@ -4568,7 +4568,7 @@ hwloc_linux_component_instantiate(struct > hwloc_disc_compon > struct hwloc_backend *backend; > struct hwloc_linux_backend_data_s *data; > const char * fsroot_path = _data1; > - int root = -1; > + int flags, root = -1; > > backend = hwloc_backend_alloc(component); > if (!backend) > @@ -4602,8 +4602,11 @@ hwloc_linux_component_instantiate(struct > hwloc_disc_compo > } > > /* Since this fd stays open after hwloc returns, mark it as > - close-on-exec so that children don't inherit it */ > - if (fcntl(root, F_SETFD, FD_CLOEXEC) == -1) { > + close-on-exec so that children don't inherit it. Stevens says > + that we should GETFD before we SETFD, so we do. */ > + flags = fcntl(root, F_GETFD, 0); > + if (-1 == flags || > + -1 == fcntl(root, F_SETFD, FD_CLOEXEC | flags)) { > close(root); > root = -1; > goto out_with_data; > > > -- > Jeff Squyres > jsquy...@cisco.com > For corporate legal information go to: > http://www.cisco.com/web/about/doing_business/legal/cri/ > > _______________________________________________ > hwloc-devel mailing list > hwloc-de...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/hwloc-devel > -- Paul H. Hargrove phhargr...@lbl.gov Future Technologies Group Computer and Data Sciences Department Tel: +1-510-495-2352 Lawrence Berkeley National Laboratory Fax: +1-510-486-6900