Chromium Code Reviews| Index: handler/crash_report_upload_thread.h |
| diff --git a/handler/crash_report_upload_thread.h b/handler/crash_report_upload_thread.h |
| index 0372a83a3d4d1f2fae859ffcc52ae71d0f2f3eb6..8fff80d70b3310d773e08affaa59a245006395af 100644 |
| --- a/handler/crash_report_upload_thread.h |
| +++ b/handler/crash_report_upload_thread.h |
| @@ -21,14 +21,10 @@ |
| #include "base/memory/scoped_ptr.h" |
| #include "client/crash_report_database.h" |
| -#include "util/synchronization/semaphore.h" |
| +#include "util/thread/worker_thread.h" |
| namespace crashpad { |
| -namespace internal { |
| -class CrashReportUploadHelperThread; |
| -} // namespace internal |
| - |
| //! \brief A thread that processes pending crash reports in a |
| //! CrashReportDatabase by uploading them or marking them as completed |
| //! without upload, as desired. |
| @@ -42,7 +38,7 @@ class CrashReportUploadHelperThread; |
| //! catches reports that are added without a ReportPending() signal being |
| //! caught. This may happen if crash reports are added to the database by other |
| //! processes. |
| -class CrashReportUploadThread { |
| +class CrashReportUploadThread : public WorkerThread::Delegate { |
| public: |
| //! \brief Constructs a new object. |
| //! |
| @@ -79,8 +75,6 @@ class CrashReportUploadThread { |
| void ReportPending(); |
| private: |
| - friend internal::CrashReportUploadHelperThread; |
| - |
| //! \brief The result code from UploadReport(). |
| enum class UploadResult { |
| //! \brief The crash report was uploaded successfully. |
| @@ -101,9 +95,11 @@ class CrashReportUploadThread { |
| kRetry, |
| }; |
| + // WorkerThread::Delegate: |
|
Mark Mentovai
2015/12/15 17:56:58
Can you sort this below UploadReport() (and in the
Robert Sesek
2015/12/23 19:22:31
Done.
|
| + |
| //! \brief Calls ProcessPendingReports() in response to ReportPending() having |
| //! been called on any thread, as well as periodically on a timer. |
| - void ThreadMain(); |
| + void DoWork(const WorkerThread* thread) override; |
| //! \brief Obtains all pending reports from the database, and calls |
| //! ProcessPendingReport() to process each one. |
| @@ -140,9 +136,7 @@ class CrashReportUploadThread { |
| std::string url_; |
| CrashReportDatabase* database_; // weak |
| - Semaphore semaphore_; // TODO(mark): Use a condition variable instead? |
| - scoped_ptr<internal::CrashReportUploadHelperThread> thread_; |
| - bool running_; |
| + WorkerThread thread_; |
|
Mark Mentovai
2015/12/15 17:56:58
Sort before the pointer (before or after url_, as
Robert Sesek
2015/12/23 19:22:31
Done.
|
| }; |
| } // namespace crashpad |