Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(390)

Side by Side Diff: public/platform/WebThread.h

Issue 563203002: [Blink-WebWorkers] WorkerSharedTimer cancels extra delayed tasks. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Removed hash set, which was used to store previous tasks. Now using single ptr. Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « Source/core/workers/WorkerThread.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2011 Google Inc. All rights reserved. 2 * Copyright (C) 2011 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the 11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution. 12 * documentation and/or other materials provided with the distribution.
13 * 13 *
14 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY 14 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
15 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 15 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
16 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 16 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
17 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY 17 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
18 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 18 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
19 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 19 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
20 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 20 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
21 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 21 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 */ 24 */
25 #ifndef WebThread_h 25 #ifndef WebThread_h
26 #define WebThread_h 26 #define WebThread_h
27 27
28 #include "WebCommon.h" 28 #include "WebCommon.h"
29 #include "base/memory/weak_ptr.h"
jochen (gone - plz use gerrit) 2014/09/12 14:11:54 you can't use base from blink, there is wtf/WeakPt
29 30
30 namespace blink { 31 namespace blink {
31 32
32 // Provides an interface to an embedder-defined thread implementation. 33 // Provides an interface to an embedder-defined thread implementation.
33 // 34 //
34 // Deleting the thread blocks until all pending, non-delayed tasks have been 35 // Deleting the thread blocks until all pending, non-delayed tasks have been
35 // run. 36 // run.
36 class BLINK_PLATFORM_EXPORT WebThread { 37 class BLINK_PLATFORM_EXPORT WebThread {
37 public: 38 public:
38 class Task { 39 class Task {
39 public: 40 public:
40 virtual ~Task() { } 41 virtual ~Task() { }
41 virtual void run() = 0; 42 virtual void run() = 0;
42 }; 43 };
43 44
44 class BLINK_PLATFORM_EXPORT TaskObserver { 45 class BLINK_PLATFORM_EXPORT TaskObserver {
45 public: 46 public:
46 virtual ~TaskObserver() { } 47 virtual ~TaskObserver() { }
47 virtual void willProcessTask() = 0; 48 virtual void willProcessTask() = 0;
48 virtual void didProcessTask() = 0; 49 virtual void didProcessTask() = 0;
49 }; 50 };
50 51
51 // postTask() and postDelayedTask() take ownership of the passed Task 52 // postTask() and postDelayedTask() take ownership of the passed Task
52 // object. It is safe to invoke postTask() and postDelayedTask() from any 53 // object. It is safe to invoke postTask() and postDelayedTask() from any
53 // thread. 54 // thread.
54 virtual void postTask(Task*) = 0; 55 virtual void postTask(Task*) = 0;
55 virtual void postDelayedTask(Task*, long long delayMs) = 0; 56 virtual void postDelayedTask(Task*, long long delayMs) = 0;
57 virtual void postCancellableDelayedTask(base::WeakPtrFactory<Task>& task, lo ng long delayMs) { }
56 58
57 virtual bool isCurrentThread() const = 0; 59 virtual bool isCurrentThread() const = 0;
58 60
59 virtual void addTaskObserver(TaskObserver*) { } 61 virtual void addTaskObserver(TaskObserver*) { }
60 virtual void removeTaskObserver(TaskObserver*) { } 62 virtual void removeTaskObserver(TaskObserver*) { }
61 63
62 // enterRunLoop() processes tasks posted to this WebThread. This call does n ot return until some task calls exitRunLoop(). 64 // enterRunLoop() processes tasks posted to this WebThread. This call does n ot return until some task calls exitRunLoop().
63 // WebThread does not support nesting, meaning that once the run loop is ent ered for a given WebThread it is not valid to 65 // WebThread does not support nesting, meaning that once the run loop is ent ered for a given WebThread it is not valid to
64 // call enterRunLoop() again. 66 // call enterRunLoop() again.
65 virtual void enterRunLoop() = 0; 67 virtual void enterRunLoop() = 0;
66 68
67 // exitRunLoop() runs tasks until there are no tasks available to run, then returns control to the caller of enterRunLoop(). 69 // exitRunLoop() runs tasks until there are no tasks available to run, then returns control to the caller of enterRunLoop().
68 // Must be called when the WebThread is running. 70 // Must be called when the WebThread is running.
69 virtual void exitRunLoop() = 0; 71 virtual void exitRunLoop() = 0;
70 72
71 virtual ~WebThread() { } 73 virtual ~WebThread() { }
72 }; 74 };
73 75
74 } // namespace blink 76 } // namespace blink
75 77
76 #endif 78 #endif
OLDNEW
« no previous file with comments | « Source/core/workers/WorkerThread.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698