|
Boost : |
From: Beman Dawes (bdawes_at_[hidden])
Date: 2005-01-21 09:38:49
CVS has been updated:
* For POSIX systems, directory_iterator now uses readdir_r if available,
with a fallback to readdir otherwise. The POSIX readdir function uses a
static buffer, so is unsafe in multi-threaded apps. Furthermore, there has
been a report that readdir on Mac OS X does not meet the POSIX requirement
of a different static buffer for each directory stream; readdir_r should
solve that problem too.
* Tests have been added to operations_test.cpp to detect interference
between directory_iterators.
The changes have been tested using operations_test.cpp on Red Hat Linux 8.0
and Windows XP. Since gcc on this Linux does supply readdir_r, the code was
tweaked by hand to force use of readdir. Both passed.
Please let me know right away if you run into any problems!
--Beman
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk