| Index: base/memory/shared_memory.h
|
| diff --git a/base/memory/shared_memory.h b/base/memory/shared_memory.h
|
| index 9d8fd5c3d9fa89030faa450434c9237b9bb2c997..872c38a4798a44a3a67f2200a581b2fbde48310d 100644
|
| --- a/base/memory/shared_memory.h
|
| +++ b/base/memory/shared_memory.h
|
| @@ -64,6 +64,22 @@ struct BASE_EXPORT SharedMemoryCreateOptions {
|
| bool share_read_only = false;
|
| };
|
|
|
| +// Enumeration of different shared memory error types. Note: Currently only
|
| +// errors from Mac POSIX shared memory implementation are fully instrumented.
|
| +// TODO(asvitkine): Evaluate whether we want to keep this ability after
|
| +// crbug.com/703649 is fixed and expand to all platforms or remove.
|
| +enum class SharedMemoryError {
|
| + NO_ERRORS,
|
| + NO_FILE,
|
| + BAD_PARAMS,
|
| + STAT_FAILED,
|
| + TRUNCATE_FAILED,
|
| + NO_TEMP_DIR,
|
| + MAKE_READONLY_FAILED,
|
| + INODE_MISMATCH,
|
| + MMAP_FAILED,
|
| +};
|
| +
|
| // Platform abstraction for shared memory.
|
| // SharedMemory consumes a SharedMemoryHandle [potentially one that it created]
|
| // to map a shared memory OS resource into the virtual address space of the
|
| @@ -233,6 +249,13 @@ class BASE_EXPORT SharedMemory {
|
| bool GetUniqueId(UniqueId* id) const;
|
| #endif
|
|
|
| + // Returns the last error encountered as a result of a call to Create() or
|
| + // Map(). Note: Currently only errors from Mac POSIX shared memory
|
| + // implementation are fully instrumented.
|
| + // TODO(asvitkine): Evaluate whether we want to keep this ability after
|
| + // crbug.com/703649 is fixed and expand to all platforms or remove.
|
| + SharedMemoryError get_last_error() const { return last_error_; }
|
| +
|
| private:
|
| #if defined(OS_POSIX) && !defined(OS_NACL) && !defined(OS_ANDROID) && \
|
| (!defined(OS_MACOSX) || defined(OS_IOS))
|
| @@ -263,6 +286,7 @@ class BASE_EXPORT SharedMemory {
|
| void* memory_ = nullptr;
|
| bool read_only_ = false;
|
| size_t requested_size_ = 0;
|
| + SharedMemoryError last_error_ = SharedMemoryError::NO_ERRORS;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(SharedMemory);
|
| };
|
|
|