Skip to content

Commit bd55760

Browse files
author
Darin Fisher
committed
2010-04-28 Darin Fisher <darin@chromium.org>
Reviewed by David Levin. [Chromium] callOnMainThread should equate to MessageLoop::PostTask https://bugs.webkit.org/show_bug.cgi?id=38276 * JavaScriptCore.gyp/JavaScriptCore.gyp: * wtf/MainThread.cpp: * wtf/chromium/ChromiumThreading.h: * wtf/chromium/MainThreadChromium.cpp: (WTF::initializeMainThread): (WTF::callOnMainThread): (WTF::callOnMainThreadAndWait): (WTF::setMainThreadCallbacksPaused): (WTF::isMainThread): Canonical link: https://commits.webkit.org/49694@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@58425 268f45cc-cd09-0410-ab3c-d52691b4dbfc
1 parent 9868b65 commit bd55760

8 files changed

Lines changed: 67 additions & 13 deletions

File tree

JavaScriptCore/ChangeLog

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,20 @@
1+
2010-04-28 Darin Fisher <darin@chromium.org>
2+
3+
Reviewed by David Levin.
4+
5+
[Chromium] callOnMainThread should equate to MessageLoop::PostTask
6+
https://bugs.webkit.org/show_bug.cgi?id=38276
7+
8+
* JavaScriptCore.gyp/JavaScriptCore.gyp:
9+
* wtf/MainThread.cpp:
10+
* wtf/chromium/ChromiumThreading.h:
11+
* wtf/chromium/MainThreadChromium.cpp:
12+
(WTF::initializeMainThread):
13+
(WTF::callOnMainThread):
14+
(WTF::callOnMainThreadAndWait):
15+
(WTF::setMainThreadCallbacksPaused):
16+
(WTF::isMainThread):
17+
118
2010-04-28 Simon Hausmann <simon.hausmann@nokia.com>, Kent Hansen <kent.hansen@nokia.com>
219

320
Reviewed by Darin Adler.

JavaScriptCore/JavaScriptCore.gyp/JavaScriptCore.gyp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@
117117
['exclude', '/(gtk|glib|gobject)/.*\\.(cpp|h)$'],
118118
['exclude', '(Default|Gtk|Mac|None|Qt|Win|Wx)\\.(cpp|mm)$'],
119119
['exclude', 'wtf/CurrentTime\\.cpp$'],
120+
['exclude', 'wtf/MainThread.cpp$'],
120121
['exclude', 'wtf/TC.*\\.(cpp|h)$'],
121122
],
122123
'direct_dependent_settings': {

JavaScriptCore/wtf/MainThread.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,10 @@
3434
#include "StdLibExtras.h"
3535
#include "Threading.h"
3636

37+
#if PLATFORM(CHROMIUM)
38+
#error Chromium uses a different main thread implementation
39+
#endif
40+
3741
namespace WTF {
3842

3943
struct FunctionWithContext {

JavaScriptCore/wtf/chromium/ChromiumThreading.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,7 @@ namespace WTF {
3636
// An interface to the embedding layer, which provides threading support.
3737
class ChromiumThreading {
3838
public:
39-
static void initializeMainThread();
40-
static void scheduleDispatchFunctionsOnMainThread();
39+
static void callOnMainThread(void (*func)(void*), void* context);
4140
};
4241

4342
} // namespace WTF

JavaScriptCore/wtf/chromium/MainThreadChromium.cpp

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,18 +31,42 @@
3131
#include "config.h"
3232
#include "MainThread.h"
3333

34+
#include "Assertions.h"
3435
#include "ChromiumThreading.h"
36+
#include "Threading.h"
3537

3638
namespace WTF {
3739

38-
void initializeMainThreadPlatform()
40+
static ThreadIdentifier mainThreadIdentifier;
41+
42+
void initializeMainThread()
43+
{
44+
static bool initializedMainThread;
45+
if (initializedMainThread)
46+
return;
47+
initializedMainThread = true;
48+
49+
mainThreadIdentifier = currentThread();
50+
}
51+
52+
void callOnMainThread(MainThreadFunction* function, void* context)
53+
{
54+
ChromiumThreading::callOnMainThread(function, context);
55+
}
56+
57+
void callOnMainThreadAndWait(MainThreadFunction*, void*)
58+
{
59+
ASSERT_NOT_REACHED();
60+
}
61+
62+
void setMainThreadCallbacksPaused(bool)
3963
{
40-
ChromiumThreading::initializeMainThread();
64+
ASSERT_NOT_REACHED();
4165
}
4266

43-
void scheduleDispatchFunctionsOnMainThread()
67+
bool isMainThread()
4468
{
45-
ChromiumThreading::scheduleDispatchFunctionsOnMainThread();
69+
return currentThread() == mainThreadIdentifier;
4670
}
4771

4872
} // namespace WTF

WebKit/chromium/ChangeLog

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
1+
2010-04-28 Darin Fisher <darin@chromium.org>
2+
3+
Reviewed by David Levin.
4+
5+
[Chromium] callOnMainThread should equate to MessageLoop::PostTask
6+
https://bugs.webkit.org/show_bug.cgi?id=38276
7+
8+
* public/WebKitClient.h:
9+
(WebKit::WebKitClient::callOnMainThread):
10+
* src/ChromiumThreading.cpp:
11+
(WTF::ChromiumThreading::callOnMainThread):
12+
113
2010-04-27 John Abd-El-Malek <jam@chromium.org>
214

315
Reviewed by Darin Fisher.

WebKit/chromium/public/WebKitClient.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,8 @@ class WebKitClient {
263263
virtual void stopSharedTimer() { }
264264

265265
// Callable from a background WebKit thread.
266-
virtual void callOnMainThread(void (*func)()) { }
266+
virtual void callOnMainThread(void (*func)()) { } // DEPRECATED
267+
virtual void callOnMainThread(void (*func)(void*), void* context) { }
267268

268269
// WebGL --------------------------------------------------------------
269270

WebKit/chromium/src/ChromiumThreading.cpp

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,9 @@
3838

3939
namespace WTF {
4040

41-
void ChromiumThreading::initializeMainThread()
41+
void ChromiumThreading::callOnMainThread(void (*func)(void*), void* context)
4242
{
43-
}
44-
45-
void ChromiumThreading::scheduleDispatchFunctionsOnMainThread()
46-
{
47-
WebKit::webKitClient()->callOnMainThread(&WTF::dispatchFunctionsFromMainThread);
43+
WebKit::webKitClient()->callOnMainThread(func, context);
4844
}
4945

5046
} // namespace WTF

0 commit comments

Comments
 (0)