diff options
author | jrg@chromium.org <jrg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-02-04 00:58:39 +0000 |
---|---|---|
committer | jrg@chromium.org <jrg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-02-04 00:58:39 +0000 |
commit | 9e51af9018550b6b23802f66469310f5d1790ab9 (patch) | |
tree | 9ab6f3e0532f6d23c2af1d0acc5605ad00876418 /base/file_util_win.cc | |
parent | 4c7ca4b8c2ceb6f823474744f035672c8501d23b (diff) | |
download | chromium_src-9e51af9018550b6b23802f66469310f5d1790ab9.zip chromium_src-9e51af9018550b6b23802f66469310f5d1790ab9.tar.gz chromium_src-9e51af9018550b6b23802f66469310f5d1790ab9.tar.bz2 |
Properly honor base::SharedMemory semantics for name="" to mean
new/private shared memory on POSIX. Transition base::SharedMemory
implementation to file/mmap() to prevent leaking of wired kernel
resources and allow easier cleanup. Enable one more shared_memory
unit test for POSIX. Enable stats_table_unittest.cc for Mac, and
modify it so it cleans up.
Review URL: http://codereview.chromium.org/19724
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9114 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/file_util_win.cc')
-rw-r--r-- | base/file_util_win.cc | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/base/file_util_win.cc b/base/file_util_win.cc index 0947827..22c24cd 100644 --- a/base/file_util_win.cc +++ b/base/file_util_win.cc @@ -395,6 +395,10 @@ bool GetTempDir(FilePath* path) { return true; } +bool GetShmemTempDir(FilePath* path) { + return GetTempDir(path); +} + bool CreateTemporaryFileName(FilePath* path) { std::wstring temp_path, temp_file; @@ -409,6 +413,22 @@ bool CreateTemporaryFileName(FilePath* path) { return false; } +// On POSIX we have semantics to create and open a temporary file +// atomically. +// TODO(jrg): is there equivalent call to use on Windows instead of +// going 2-step? +FILE* CreateAndOpenTemporaryFile(FilePath* path) { + + if (!CreateTemporaryFileName(path)) { + return NULL; + } + return OpenFile(*path, "w+"); +} + +FILE* CreateAndOpenTemporaryShmemFile(FilePath* path) { + return CreateAndOpenTemporaryFile(path); +} + bool CreateTemporaryFileNameInDir(const std::wstring& dir, std::wstring* temp_file) { wchar_t temp_name[MAX_PATH + 1]; |