| Index: base/at_exit.h
|
| ===================================================================
|
| --- base/at_exit.h (revision 99168)
|
| +++ base/at_exit.h (working copy)
|
| @@ -10,6 +10,7 @@
|
|
|
| #include "base/base_export.h"
|
| #include "base/basictypes.h"
|
| +#include "base/callback.h"
|
| #include "base/synchronization/lock.h"
|
|
|
| namespace base {
|
| @@ -39,9 +40,12 @@
|
| ~AtExitManager();
|
|
|
| // Registers the specified function to be called at exit. The prototype of
|
| - // the callback function is void func().
|
| + // the callback function is void func(void*).
|
| static void RegisterCallback(AtExitCallbackType func, void* param);
|
|
|
| + // Registers the specified task to be called at exit.
|
| + static void RegisterTask(base::Closure task);
|
| +
|
| // Calls the functions registered with RegisterCallback in LIFO order. It
|
| // is possible to register new callbacks after calling this function.
|
| static void ProcessCallbacksNow();
|
| @@ -54,15 +58,8 @@
|
| explicit AtExitManager(bool shadow);
|
|
|
| private:
|
| - struct CallbackAndParam {
|
| - CallbackAndParam(AtExitCallbackType func, void* param)
|
| - : func_(func), param_(param) { }
|
| - AtExitCallbackType func_;
|
| - void* param_;
|
| - };
|
| -
|
| base::Lock lock_;
|
| - std::stack<CallbackAndParam> stack_;
|
| + std::stack<base::Closure> stack_;
|
| AtExitManager* next_manager_; // Stack of managers to allow shadowing.
|
|
|
| DISALLOW_COPY_AND_ASSIGN(AtExitManager);
|
|
|