Index: base/posix/global_descriptors.cc |
diff --git a/base/posix/global_descriptors.cc b/base/posix/global_descriptors.cc |
index 6c187838ad69d63051a1155d64c26623de8a2db0..8da808e52d977f5d1036b0a61902bb3799c1c7ff 100644 |
--- a/base/posix/global_descriptors.cc |
+++ b/base/posix/global_descriptors.cc |
@@ -47,6 +47,22 @@ int GlobalDescriptors::MaybeGet(Key key) const { |
return -1; |
} |
+base::ScopedFD GlobalDescriptors::TakeFD( |
+ Key key, |
+ base::MemoryMappedFile::Region* region) { |
+ base::ScopedFD fd; |
+ for (Mapping::iterator i = descriptors_.begin(); i != descriptors_.end(); |
+ ++i) { |
+ if (i->key == key) { |
+ *region = i->region; |
+ fd.reset(i->fd); |
+ descriptors_.erase(i); |
+ break; |
+ } |
+ } |
+ return fd; |
+} |
+ |
void GlobalDescriptors::Set(Key key, int fd) { |
Set(key, fd, base::MemoryMappedFile::Region::kWholeFile); |
} |