Mercurial > hg
view tests/test-revlog-packentry.t @ 31471:95be8b7181d3
osutil: fix potential wrong fd close
According to POSIX closedir [1]:
If a file descriptor is used to implement type DIR, that file descriptor
shall be closed.
According to POSIX fdopendir [2]:
Upon calling closedir() the file descriptor shall be closed.
So we should avoid "close(dfd)" after "closedir(dir)". With threads, there
could be a race where an innocent fd gets closed. But Python GIL seems to
help hiding the issue well.
[1]: http://pubs.opengroup.org/onlinepubs/009695399/functions/closedir.html
[2]: http://pubs.opengroup.org/onlinepubs/9699919799/functions/fdopendir.html
author | Jun Wu <quark@fb.com> |
---|---|
date | Wed, 15 Mar 2017 20:43:12 -0700 |
parents | 6cc1f388ac80 |
children | 009d0283de5f |
line wrap: on
line source
$ hg init repo $ cd repo $ touch foo $ hg ci -Am 'add foo' adding foo $ hg up -C null 0 files updated, 0 files merged, 1 files removed, 0 files unresolved this should be stored as a delta against rev 0 $ echo foo bar baz > foo $ hg ci -Am 'add foo again' adding foo created new head $ hg debugindex foo rev offset length ..... linkrev nodeid p1 p2 (re) 0 0 0 ..... 0 b80de5d13875 000000000000 000000000000 (re) 1 0 13 ..... 1 0376abec49b8 000000000000 000000000000 (re) $ cd ..