mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1139253. Reuse the same thread for the software vsync thread. r=kats
This commit is contained in:
parent
f5c6e9dc7f
commit
5ce011a2c3
@ -10,6 +10,7 @@
|
||||
|
||||
SoftwareVsyncSource::SoftwareVsyncSource()
|
||||
{
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
mGlobalDisplay = new SoftwareDisplay();
|
||||
}
|
||||
|
||||
@ -30,6 +31,7 @@ SoftwareDisplay::SoftwareDisplay()
|
||||
const double rate = 1000 / 60.0;
|
||||
mVsyncRate = mozilla::TimeDuration::FromMilliseconds(rate);
|
||||
mVsyncThread = new base::Thread("SoftwareVsyncThread");
|
||||
MOZ_RELEASE_ASSERT(mVsyncThread->Start(), "Could not start software vsync thread");
|
||||
}
|
||||
|
||||
void
|
||||
@ -43,8 +45,7 @@ SoftwareDisplay::EnableVsync()
|
||||
{ // scope lock
|
||||
mozilla::MonitorAutoLock lock(mCurrentTaskMonitor);
|
||||
mVsyncEnabled = true;
|
||||
MOZ_ASSERT(!mVsyncThread->IsRunning());
|
||||
MOZ_RELEASE_ASSERT(mVsyncThread->Start(), "Could not start software vsync thread");
|
||||
MOZ_ASSERT(mVsyncThread->IsRunning());
|
||||
mCurrentVsyncTask = NewRunnableMethod(this,
|
||||
&SoftwareDisplay::NotifyVsync,
|
||||
mozilla::TimeStamp::Now());
|
||||
@ -69,7 +70,6 @@ SoftwareDisplay::DisableVsync()
|
||||
mCurrentVsyncTask = nullptr;
|
||||
}
|
||||
}
|
||||
mVsyncThread->Stop();
|
||||
}
|
||||
|
||||
bool
|
||||
@ -136,5 +136,6 @@ SoftwareDisplay::ScheduleNextVsync(mozilla::TimeStamp aVsyncTimestamp)
|
||||
SoftwareDisplay::~SoftwareDisplay()
|
||||
{
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
mVsyncThread->Stop();
|
||||
delete mVsyncThread;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user