summaryrefslogtreecommitdiff
path: root/src/dirent
AgeCommit message (Collapse)AuthorLines
2012-04-24ditch the priority inheritance locks; use malloc's version of lockRich Felker-12/+9
i did some testing trying to switch malloc to use the new internal lock with priority inheritance, and my malloc contention test got 20-100 times slower. if priority inheritance futexes are this slow, it's simply too high a price to pay for avoiding priority inversion. maybe we can consider them somewhere down the road once the kernel folks get their act together on this (and perferably don't link it to glibc's inefficient lock API)... as such, i've switch __lock to use malloc's implementation of lightweight locks, and updated all the users of the code to use an array with a waiter count for their locks. this should give optimal performance in the vast majority of cases, and it's simple. malloc is still using its own internal copy of the lock code because it seems to yield measurably better performance with -O3 when it's inlined (20% or more difference in the contention stress test).
2011-07-21fix errno value when fdopendir is given an invalid file descriptorRich Felker-1/+4
this resolves an issue reported by Vasiliy Kulikov
2011-06-25optimize opendir using O_CLOEXECRich Felker-2/+1
2011-06-06fix handling of d_name in struct direntRich Felker-4/+3
basically there are 3 choices for how to implement this variable-size string member: 1. C99 flexible array member: breaks using dirent.h with pre-C99 compiler. 2. old way: length-1 string: generates array bounds warnings in caller. 3. new way: length-NAME_MAX string. no problems, simplifies all code. of course the usable part in the pointer returned by readdir might be shorter than NAME_MAX+1 bytes, but that is allowed by the standard and doesn't hurt anything.
2011-04-18avoid fd leak if opendir is cancelled when calloc has failedRich Felker-1/+2
2011-04-11fix errno handling in scandir:Rich Felker-2/+1
1. saved errno was not being restored, illegally clearing errno to 0. 2. no need to backup and save errno around free; it will not touch except perhaps when the program has already invoked UB...
2011-03-20global cleanup to use the new syscall interfaceRich Felker-1/+1
2011-02-15finish moving 32-bit-specific junk out of source files.Rich Felker-1/+1
2011-02-12initial check-in, version 0.5.0v0.5.0Rich Felker-0/+244