Index: session_manager_service.h |
diff --git a/session_manager_service.h b/session_manager_service.h |
index 86a5615f69da60506ac7b40df4e492bd3f76f748..ce59c918dc51d31cc4cc596bb4d3bc1646131b02 100644 |
--- a/session_manager_service.h |
+++ b/session_manager_service.h |
@@ -19,6 +19,7 @@ |
#include <base/ref_counted.h> |
#include <base/scoped_ptr.h> |
#include <base/thread.h> |
+#include <base/waitable_event.h> |
#include <chromeos/dbus/abstract_dbus_service.h> |
#include <chromeos/dbus/dbus.h> |
#include <chromeos/dbus/service_constants.h> |
@@ -55,27 +56,6 @@ class SessionManagerService |
: public base::RefCountedThreadSafe<SessionManagerService>, |
public chromeos::dbus::AbstractDbusService { |
public: |
- struct PersistKeyData { |
- public: |
- PersistKeyData(SystemUtils* utils, OwnerKey* key) |
- : signaler(utils), |
- to_persist(key) { |
- } |
- ~PersistKeyData() {} |
- SystemUtils* signaler; |
- OwnerKey* to_persist; |
- }; |
- |
- struct PersistStoreData { |
- public: |
- PersistStoreData(SystemUtils* utils, PrefStore* store) |
- : signaler(utils), |
- to_persist(store) { |
- } |
- ~PersistStoreData() {} |
- SystemUtils* signaler; |
- PrefStore* to_persist; |
- }; |
SessionManagerService(std::vector<ChildJobInterface*> child_jobs); |
virtual ~SessionManagerService(); |
@@ -471,6 +451,10 @@ class SessionManagerService |
// to signal Chromium when done. |
void PersistStore(); |
+ // |store_| is persisted to disk, and |event| is signaled when done. This |
+ // is used to provide synchronous, threadsafe persisting. |
+ void PersistStoreSync(base::WaitableEvent* event); |
+ |
void StartKeyGeneration(); |
// Uses |system_| to send |signal_name| to Chromium. Attaches a payload |