Mutex* getKeychainMutex();
Mutex* getMutexForObject() const;
- ReadWriteLock* getKeychainReadWriteLock();
void aboutToDestruct();
bool operator ==(const KeychainImpl &) const;
const AccessCredentials *defaultCredentials();
// Only call these functions while holding globals().apiLock.
- bool inCache() const throw() { return mInCache; }
- void inCache(bool inCache) throw() { mInCache = inCache; }
+ bool inCache() const _NOEXCEPT { return mInCache; }
+ void inCache(bool inCache) _NOEXCEPT { mInCache = inCache; }
void postEvent(SecKeychainEvent kcEvent, ItemImpl* item);
void postEvent(SecKeychainEvent kcEvent, ItemImpl* item, PrimaryKey pk);
DefaultCredentials mCustomUnlockCreds;
bool mIsInBatchMode;
EventBuffer *mEventBuffer;
- Mutex mMutex;
+ mutable Mutex mMutex;
// Now that we sometimes change the database object, Db object
// creation/returning needs a mutex. You should only hold this if you're
// copying or changing the mDb object.
Mutex mDbMutex;
-
- // Used to protect mDb across calls.
- // Grab a read lock if you expect to read from this keychain in the future.
- // The write lock is taken if we're replacing the database wholesale with something new.
- ReadWriteLock mRWLock;
};