diff options
author | Kenny Root <kroot@google.com> | 2010-10-04 17:12:10 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2010-10-04 17:12:10 -0700 |
commit | bfa33b9484e2c0a019ab81f30261b9696df23a9b (patch) | |
tree | 12be49b8e0bfced18747358526669e49ba5fa2ac /include | |
parent | b3e95d9fc4365d20a39aa3ef61da537dabf5b800 (diff) | |
parent | f84a5918f5e0572c0280fa705970ef7459b45393 (diff) | |
download | frameworks_base-bfa33b9484e2c0a019ab81f30261b9696df23a9b.zip frameworks_base-bfa33b9484e2c0a019ab81f30261b9696df23a9b.tar.gz frameworks_base-bfa33b9484e2c0a019ab81f30261b9696df23a9b.tar.bz2 |
am f84a5918: Merge "Use pread() in ZipFileRO for Linux" into gingerbread
Merge commit 'f84a5918f5e0572c0280fa705970ef7459b45393' into gingerbread-plus-aosp
* commit 'f84a5918f5e0572c0280fa705970ef7459b45393':
Use pread() in ZipFileRO for Linux
Diffstat (limited to 'include')
-rw-r--r-- | include/utils/ZipFileRO.h | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/include/utils/ZipFileRO.h b/include/utils/ZipFileRO.h index e1ff780..3c1f3ca 100644 --- a/include/utils/ZipFileRO.h +++ b/include/utils/ZipFileRO.h @@ -14,13 +14,19 @@ * limitations under the License. */ -// -// Read-only access to Zip archives, with minimal heap allocation. -// -// This is similar to the more-complete ZipFile class, but no attempt -// has been made to make them interchangeable. This class operates under -// a very different set of assumptions and constraints. -// +/* + * Read-only access to Zip archives, with minimal heap allocation. + * + * This is similar to the more-complete ZipFile class, but no attempt + * has been made to make them interchangeable. This class operates under + * a very different set of assumptions and constraints. + * + * One such assumption is that if you're getting file descriptors for + * use with this class as a child of a fork() operation, you must be on + * a pread() to guarantee correct operation. This is because pread() can + * atomically read at a file offset without worrying about a lock around an + * lseek() + read() pair. + */ #ifndef __LIBS_ZIPFILERO_H #define __LIBS_ZIPFILERO_H @@ -55,6 +61,10 @@ typedef void* ZipEntryRO; * the record structure. However, this requires a private mapping of * every page that the Central Directory touches. Easier to tuck a copy * of the string length into the hash table entry. + * + * NOTE: If this is used on file descriptors inherited from a fork() operation, + * you must be on a platform that implements pread() to guarantee correctness + * on the shared file descriptors. */ class ZipFileRO { public: |