Reschedule shared CFRunLoopTimer instead of reconstructing it
https://bugs.webkit.org/show_bug.cgi?id=109765

Reviewed by Andreas Kling.

Using CFRunLoopTimerSetNextFireDate is over 2x faster than deleting and reconstructing timers.

* platform/SharedTimer.h:
(WebCore::SharedTimer::willEnterNestedEventLoop):
(WebCore):
(MainThreadSharedTimer):
(WebCore::MainThreadSharedTimer::willEnterNestedEventLoop):
* platform/ThreadTimers.cpp:
(WebCore::ThreadTimers::fireTimersInNestedEventLoop):
* platform/mac/SharedTimerMac.mm:
(WebCore):
(WebCore::PowerObserver::clearSharedTimer):
(WebCore::ensurePowerObserver):
(WebCore::sharedTimer):
(WebCore::reinsertSharedTimer):
        
    Before entering nested runloop (used for inspector debugger mostly) reconstruct and reinsert the timer. For some reason
    the timer doesn't fire otherwise.

(WebCore::setSharedTimerFireInterval):
(WebCore::stopSharedTimer):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143210 268f45cc-cd09-0410-ab3c-d52691b4dbfc