Convert bTimer => bIdle
All other places already refer to being Idle, so change the Scheduler::ProcessTaskScheduling argument to bIdle and adapt all other scheduler-related functions. Change-Id: If5a605abbc3e620092127b65ada29f11215a0343
This commit is contained in:
@@ -28,7 +28,7 @@ class VCL_DLLPUBLIC Idle : public Scheduler
|
|||||||
Link<Idle *, void> maIdleHdl; // Callback Link
|
Link<Idle *, void> maIdleHdl; // Callback Link
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual bool ReadyForSchedule( bool bTimerOnly, sal_uInt64 nTimeNow ) const override;
|
virtual bool ReadyForSchedule( bool bIdle, sal_uInt64 nTimeNow ) const override;
|
||||||
virtual bool IsIdle() const override;
|
virtual bool IsIdle() const override;
|
||||||
virtual sal_uInt64 UpdateMinPeriod( sal_uInt64 nMinPeriod, sal_uInt64 nTimeNow ) const override;
|
virtual sal_uInt64 UpdateMinPeriod( sal_uInt64 nMinPeriod, sal_uInt64 nTimeNow ) const override;
|
||||||
|
|
||||||
|
@@ -54,7 +54,7 @@ protected:
|
|||||||
friend struct ImplSchedulerData;
|
friend struct ImplSchedulerData;
|
||||||
virtual void SetDeletionFlags();
|
virtual void SetDeletionFlags();
|
||||||
/// Is this item ready to be dispatched at nTimeNow
|
/// Is this item ready to be dispatched at nTimeNow
|
||||||
virtual bool ReadyForSchedule( bool bTimerOnly, sal_uInt64 nTimeNow ) const = 0;
|
virtual bool ReadyForSchedule( bool bIdle, sal_uInt64 nTimeNow ) const = 0;
|
||||||
/// Schedule only when other timers and events are processed
|
/// Schedule only when other timers and events are processed
|
||||||
virtual bool IsIdle() const = 0;
|
virtual bool IsIdle() const = 0;
|
||||||
/**
|
/**
|
||||||
@@ -90,7 +90,7 @@ public:
|
|||||||
/// Calculate minimum timeout - and return its value.
|
/// Calculate minimum timeout - and return its value.
|
||||||
static sal_uInt64 CalculateMinimumTimeout( bool &bHasActiveIdles );
|
static sal_uInt64 CalculateMinimumTimeout( bool &bHasActiveIdles );
|
||||||
/// Process one pending task ahead of time with highest priority.
|
/// Process one pending task ahead of time with highest priority.
|
||||||
static bool ProcessTaskScheduling( bool bTimerOnly );
|
static bool ProcessTaskScheduling( bool bIdle );
|
||||||
/// Process all events until we are idle
|
/// Process all events until we are idle
|
||||||
static void ProcessEventsToIdle();
|
static void ProcessEventsToIdle();
|
||||||
|
|
||||||
|
@@ -31,7 +31,7 @@ protected:
|
|||||||
bool mbAuto;
|
bool mbAuto;
|
||||||
|
|
||||||
virtual void SetDeletionFlags() override;
|
virtual void SetDeletionFlags() override;
|
||||||
virtual bool ReadyForSchedule( bool bTimerOnly, sal_uInt64 nTimeNow ) const override;
|
virtual bool ReadyForSchedule( bool bIdle, sal_uInt64 nTimeNow ) const override;
|
||||||
virtual bool IsIdle() const override;
|
virtual bool IsIdle() const override;
|
||||||
virtual sal_uInt64 UpdateMinPeriod( sal_uInt64 nMinPeriod, sal_uInt64 nTimeNow ) const override;
|
virtual sal_uInt64 UpdateMinPeriod( sal_uInt64 nMinPeriod, sal_uInt64 nTimeNow ) const override;
|
||||||
|
|
||||||
|
@@ -70,7 +70,7 @@ struct ImplSchedulerData
|
|||||||
void Invoke();
|
void Invoke();
|
||||||
|
|
||||||
const char *GetDebugName() const;
|
const char *GetDebugName() const;
|
||||||
static ImplSchedulerData *GetMostImportantTask( bool bTimerOnly, sal_uInt64 nTimeNow );
|
static ImplSchedulerData *GetMostImportantTask( bool bIdle, sal_uInt64 nTimeNow );
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // INCLUDED_VCL_INC_SALTIMER_HXX
|
#endif // INCLUDED_VCL_INC_SALTIMER_HXX
|
||||||
|
@@ -211,7 +211,7 @@ void LifecycleTest::testFocus()
|
|||||||
xWin->Show();
|
xWin->Show();
|
||||||
xChild->GrabFocus();
|
xChild->GrabFocus();
|
||||||
// process asynchronous ToTop
|
// process asynchronous ToTop
|
||||||
Scheduler::ProcessTaskScheduling(false);
|
Scheduler::ProcessTaskScheduling( true );
|
||||||
// FIXME: really awful to test focus issues without showing windows.
|
// FIXME: really awful to test focus issues without showing windows.
|
||||||
// CPPUNIT_ASSERT(xChild->HasFocus());
|
// CPPUNIT_ASSERT(xChild->HasFocus());
|
||||||
}
|
}
|
||||||
|
@@ -117,7 +117,7 @@ void TimerTest::testIdle()
|
|||||||
{
|
{
|
||||||
bool bTriggered = false;
|
bool bTriggered = false;
|
||||||
IdleBool aTest( bTriggered );
|
IdleBool aTest( bTriggered );
|
||||||
Scheduler::ProcessTaskScheduling(false);
|
Scheduler::ProcessTaskScheduling( true );
|
||||||
CPPUNIT_ASSERT_MESSAGE("idle triggered", bTriggered);
|
CPPUNIT_ASSERT_MESSAGE("idle triggered", bTriggered);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -63,10 +63,10 @@ void Idle::Start()
|
|||||||
Scheduler::ImplStartTimer(nPeriod);
|
Scheduler::ImplStartTimer(nPeriod);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Idle::ReadyForSchedule( bool bTimerOnly, sal_uInt64 /* nTimeNow */ ) const
|
bool Idle::ReadyForSchedule( bool bIdle, sal_uInt64 /* nTimeNow */ ) const
|
||||||
{
|
{
|
||||||
// always ready if not only looking for timers.
|
// always ready if not only looking for timers.
|
||||||
return !bTimerOnly;
|
return bIdle;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Idle::IsIdle() const
|
bool Idle::IsIdle() const
|
||||||
|
@@ -49,7 +49,7 @@ void ImplSchedulerData::Invoke()
|
|||||||
mbInScheduler = false;
|
mbInScheduler = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
ImplSchedulerData *ImplSchedulerData::GetMostImportantTask( bool bTimerOnly, sal_uInt64 nTimeNow )
|
ImplSchedulerData *ImplSchedulerData::GetMostImportantTask( bool bIdle, sal_uInt64 nTimeNow )
|
||||||
{
|
{
|
||||||
ImplSVData* pSVData = ImplGetSVData();
|
ImplSVData* pSVData = ImplGetSVData();
|
||||||
ImplSchedulerData *pMostUrgent = nullptr;
|
ImplSchedulerData *pMostUrgent = nullptr;
|
||||||
@@ -57,7 +57,7 @@ ImplSchedulerData *ImplSchedulerData::GetMostImportantTask( bool bTimerOnly, sal
|
|||||||
for ( ImplSchedulerData *pSchedulerData = pSVData->mpFirstSchedulerData; pSchedulerData; pSchedulerData = pSchedulerData->mpNext )
|
for ( ImplSchedulerData *pSchedulerData = pSVData->mpFirstSchedulerData; pSchedulerData; pSchedulerData = pSchedulerData->mpNext )
|
||||||
{
|
{
|
||||||
if ( !pSchedulerData->mpScheduler || pSchedulerData->mbDelete || pSchedulerData->mbInScheduler ||
|
if ( !pSchedulerData->mpScheduler || pSchedulerData->mbDelete || pSchedulerData->mbInScheduler ||
|
||||||
!pSchedulerData->mpScheduler->ReadyForSchedule( bTimerOnly, nTimeNow ) ||
|
!pSchedulerData->mpScheduler->ReadyForSchedule( bIdle, nTimeNow ) ||
|
||||||
!pSchedulerData->mpScheduler->IsActive())
|
!pSchedulerData->mpScheduler->IsActive())
|
||||||
continue;
|
continue;
|
||||||
if (!pMostUrgent)
|
if (!pMostUrgent)
|
||||||
@@ -164,20 +164,20 @@ void InitSystemTimer(ImplSVData* pSVData)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Scheduler::CallbackTaskScheduling(bool)
|
void Scheduler::CallbackTaskScheduling( bool bIdle )
|
||||||
{
|
{
|
||||||
// this function is for the saltimer callback
|
// this function is for the saltimer callback
|
||||||
Scheduler::ProcessTaskScheduling( false );
|
Scheduler::ProcessTaskScheduling( bIdle );
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Scheduler::ProcessTaskScheduling( bool bTimerOnly )
|
bool Scheduler::ProcessTaskScheduling( bool bIdle )
|
||||||
{
|
{
|
||||||
ImplSchedulerData* pSchedulerData;
|
ImplSchedulerData* pSchedulerData;
|
||||||
sal_uInt64 nTime = tools::Time::GetSystemTicks();
|
sal_uInt64 nTime = tools::Time::GetSystemTicks();
|
||||||
|
|
||||||
DBG_TESTSOLARMUTEX();
|
DBG_TESTSOLARMUTEX();
|
||||||
|
|
||||||
if ((pSchedulerData = ImplSchedulerData::GetMostImportantTask(bTimerOnly, nTime)))
|
if ((pSchedulerData = ImplSchedulerData::GetMostImportantTask(bIdle, nTime)))
|
||||||
{
|
{
|
||||||
SAL_INFO("vcl.schedule", "Invoke task " << pSchedulerData->GetDebugName());
|
SAL_INFO("vcl.schedule", "Invoke task " << pSchedulerData->GetDebugName());
|
||||||
|
|
||||||
@@ -203,8 +203,6 @@ bool Scheduler::GetDeterministicMode()
|
|||||||
|
|
||||||
sal_uInt64 Scheduler::CalculateMinimumTimeout( bool &bHasActiveIdles )
|
sal_uInt64 Scheduler::CalculateMinimumTimeout( bool &bHasActiveIdles )
|
||||||
{
|
{
|
||||||
// process all pending Tasks
|
|
||||||
// if bTimer True, only handle timer
|
|
||||||
ImplSchedulerData* pSchedulerData = nullptr;
|
ImplSchedulerData* pSchedulerData = nullptr;
|
||||||
ImplSchedulerData* pPrevSchedulerData = nullptr;
|
ImplSchedulerData* pPrevSchedulerData = nullptr;
|
||||||
ImplSVData* pSVData = ImplGetSVData();
|
ImplSVData* pSVData = ImplGetSVData();
|
||||||
|
@@ -515,7 +515,7 @@ inline bool ImplYield(bool i_bWait, bool i_bAllEvents, sal_uLong const nReleased
|
|||||||
if (nReleased == 0) // tdf#99383 don't run stuff from ReAcquireSolarMutex
|
if (nReleased == 0) // tdf#99383 don't run stuff from ReAcquireSolarMutex
|
||||||
{
|
{
|
||||||
// Process all Tasks
|
// Process all Tasks
|
||||||
Scheduler::ProcessTaskScheduling(eResult == SalYieldResult::EVENT);
|
Scheduler::ProcessTaskScheduling(eResult != SalYieldResult::EVENT);
|
||||||
}
|
}
|
||||||
|
|
||||||
// flush lazy deleted objects
|
// flush lazy deleted objects
|
||||||
@@ -535,7 +535,7 @@ void Application::Reschedule( bool i_bAllEvents )
|
|||||||
void Scheduler::ProcessEventsToIdle()
|
void Scheduler::ProcessEventsToIdle()
|
||||||
{
|
{
|
||||||
int nSanity = 1000;
|
int nSanity = 1000;
|
||||||
while(Scheduler::ProcessTaskScheduling(false) ||
|
while(Scheduler::ProcessTaskScheduling( true ) ||
|
||||||
ImplYield(false, false, 0))
|
ImplYield(false, false, 0))
|
||||||
{
|
{
|
||||||
if (nSanity-- < 0)
|
if (nSanity-- < 0)
|
||||||
|
@@ -31,7 +31,7 @@ void Timer::SetDeletionFlags()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Timer::ReadyForSchedule( bool /* bTimerOnly */, sal_uInt64 nTimeNow ) const
|
bool Timer::ReadyForSchedule( bool /* bIdle */, sal_uInt64 nTimeNow ) const
|
||||||
{
|
{
|
||||||
return (mpSchedulerData->mnUpdateTime + mnTimeout) <= nTimeNow;
|
return (mpSchedulerData->mnUpdateTime + mnTimeout) <= nTimeNow;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user