http://trac.webkit.org/changeset/142825
https://bugs.webkit.org/show_bug.cgi?id=109856
Causes some inspector tests to time out (Requested by anttik
on #webkit).
Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2013-02-14
* platform/mac/SharedTimerMac.mm:
(WebCore):
(WebCore::PowerObserver::restartSharedTimer):
(WebCore::setSharedTimerFireInterval):
(WebCore::stopSharedTimer):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@142907
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2013-02-14 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r142825.
+ http://trac.webkit.org/changeset/142825
+ https://bugs.webkit.org/show_bug.cgi?id=109856
+
+ Causes some inspector tests to time out (Requested by anttik
+ on #webkit).
+
+ * platform/mac/SharedTimerMac.mm:
+ (WebCore):
+ (WebCore::PowerObserver::restartSharedTimer):
+ (WebCore::setSharedTimerFireInterval):
+ (WebCore::stopSharedTimer):
+
2013-02-14 Lamarque V. Souza <Lamarque.Souza@basyskom.com>
Support the ch unit from css3-values
2013-02-14 Lamarque V. Souza <Lamarque.Souza@basyskom.com>
Support the ch unit from css3-values
-static const CFTimeInterval distantFuture = 60 * 60 * 24 * 365 * 10; // Decade.
-
+static CFRunLoopTimerRef sharedTimer;
static void (*sharedTimerFiredFunction)();
static void timerFired(CFRunLoopTimerRef, void*);
static void (*sharedTimerFiredFunction)();
static void timerFired(CFRunLoopTimerRef, void*);
{
ASSERT(CFRunLoopGetCurrent() == CFRunLoopGetMain());
{
ASSERT(CFRunLoopGetCurrent() == CFRunLoopGetMain());
+ if (!sharedTimer)
+ return;
+
stopSharedTimer();
timerFired(0, 0);
}
stopSharedTimer();
timerFired(0, 0);
}
-static CFRunLoopTimerRef sharedTimer()
-{
- static CFRunLoopTimerRef timer;
- static dispatch_once_t onceToken;
- dispatch_once(&onceToken, ^{
- timer = CFRunLoopTimerCreate(0, CFAbsoluteTimeGetCurrent() + distantFuture, distantFuture, 0, 0, timerFired, 0);
- CFRunLoopAddTimer(CFRunLoopGetCurrent(), timer, kCFRunLoopCommonModes);
-
- static PowerObserver* powerObserver;
- powerObserver = PowerObserver::create().leakPtr();
- });
- return timer;
-};
+static PowerObserver* PowerObserver;
void setSharedTimerFiredFunction(void (*f)())
{
void setSharedTimerFiredFunction(void (*f)())
{
void setSharedTimerFireInterval(double interval)
{
ASSERT(sharedTimerFiredFunction);
void setSharedTimerFireInterval(double interval)
{
ASSERT(sharedTimerFiredFunction);
+
+ if (sharedTimer) {
+ CFRunLoopTimerInvalidate(sharedTimer);
+ CFRelease(sharedTimer);
+ }
+
CFAbsoluteTime fireDate = CFAbsoluteTimeGetCurrent() + interval;
CFAbsoluteTime fireDate = CFAbsoluteTimeGetCurrent() + interval;
- CFRunLoopTimerSetNextFireDate(sharedTimer(), fireDate);
+ sharedTimer = CFRunLoopTimerCreate(0, fireDate, 0, 0, 0, timerFired, 0);
+ CFRunLoopAddTimer(CFRunLoopGetCurrent(), sharedTimer, kCFRunLoopCommonModes);
+
+ if (!PowerObserver)
+ PowerObserver = PowerObserver::create().leakPtr();
}
void stopSharedTimer()
{
}
void stopSharedTimer()
{
- CFRunLoopTimerSetNextFireDate(sharedTimer(), CFAbsoluteTimeGetCurrent() + distantFuture);
+ if (sharedTimer) {
+ CFRunLoopTimerInvalidate(sharedTimer);
+ CFRelease(sharedTimer);
+ sharedTimer = 0;
+ }