mirror of https://git.suyu.dev/suyu/suyu
core/hle: Standardize scoped_lock initializers
This commit is contained in:
parent
4778656110
commit
d79274a5d9
|
@ -21,7 +21,7 @@ Status BufferItemConsumer::AcquireBuffer(BufferItem* item, std::chrono::nanoseco
|
||||||
return Status::BadValue;
|
return Status::BadValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::scoped_lock lock(mutex);
|
std::scoped_lock lock{mutex};
|
||||||
|
|
||||||
if (const auto status = AcquireBufferLocked(item, present_when); status != Status::NoError) {
|
if (const auto status = AcquireBufferLocked(item, present_when); status != Status::NoError) {
|
||||||
if (status != Status::NoBufferAvailable) {
|
if (status != Status::NoBufferAvailable) {
|
||||||
|
@ -40,7 +40,7 @@ Status BufferItemConsumer::AcquireBuffer(BufferItem* item, std::chrono::nanoseco
|
||||||
}
|
}
|
||||||
|
|
||||||
Status BufferItemConsumer::ReleaseBuffer(const BufferItem& item, Fence& release_fence) {
|
Status BufferItemConsumer::ReleaseBuffer(const BufferItem& item, Fence& release_fence) {
|
||||||
std::scoped_lock lock(mutex);
|
std::scoped_lock lock{mutex};
|
||||||
|
|
||||||
if (const auto status = AddReleaseFenceLocked(item.buf, item.graphic_buffer, release_fence);
|
if (const auto status = AddReleaseFenceLocked(item.buf, item.graphic_buffer, release_fence);
|
||||||
status != Status::NoError) {
|
status != Status::NoError) {
|
||||||
|
|
|
@ -19,7 +19,7 @@ BufferQueueConsumer::~BufferQueueConsumer() = default;
|
||||||
|
|
||||||
Status BufferQueueConsumer::AcquireBuffer(BufferItem* out_buffer,
|
Status BufferQueueConsumer::AcquireBuffer(BufferItem* out_buffer,
|
||||||
std::chrono::nanoseconds expected_present) {
|
std::chrono::nanoseconds expected_present) {
|
||||||
std::scoped_lock lock(core->mutex);
|
std::scoped_lock lock{core->mutex};
|
||||||
|
|
||||||
// Check that the consumer doesn't currently have the maximum number of buffers acquired.
|
// Check that the consumer doesn't currently have the maximum number of buffers acquired.
|
||||||
const s32 num_acquired_buffers{
|
const s32 num_acquired_buffers{
|
||||||
|
@ -120,7 +120,7 @@ Status BufferQueueConsumer::ReleaseBuffer(s32 slot, u64 frame_number, const Fenc
|
||||||
|
|
||||||
std::shared_ptr<IProducerListener> listener;
|
std::shared_ptr<IProducerListener> listener;
|
||||||
{
|
{
|
||||||
std::scoped_lock lock(core->mutex);
|
std::scoped_lock lock{core->mutex};
|
||||||
|
|
||||||
// If the frame number has changed because the buffer has been reallocated, we can ignore
|
// If the frame number has changed because the buffer has been reallocated, we can ignore
|
||||||
// this ReleaseBuffer for the old buffer.
|
// this ReleaseBuffer for the old buffer.
|
||||||
|
@ -180,7 +180,7 @@ Status BufferQueueConsumer::Connect(std::shared_ptr<IConsumerListener> consumer_
|
||||||
|
|
||||||
LOG_DEBUG(Service_NVFlinger, "controlled_by_app={}", controlled_by_app);
|
LOG_DEBUG(Service_NVFlinger, "controlled_by_app={}", controlled_by_app);
|
||||||
|
|
||||||
std::scoped_lock lock(core->mutex);
|
std::scoped_lock lock{core->mutex};
|
||||||
|
|
||||||
if (core->is_abandoned) {
|
if (core->is_abandoned) {
|
||||||
LOG_ERROR(Service_NVFlinger, "BufferQueue has been abandoned");
|
LOG_ERROR(Service_NVFlinger, "BufferQueue has been abandoned");
|
||||||
|
@ -199,7 +199,7 @@ Status BufferQueueConsumer::GetReleasedBuffers(u64* out_slot_mask) {
|
||||||
return Status::BadValue;
|
return Status::BadValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::scoped_lock lock(core->mutex);
|
std::scoped_lock lock{core->mutex};
|
||||||
|
|
||||||
if (core->is_abandoned) {
|
if (core->is_abandoned) {
|
||||||
LOG_ERROR(Service_NVFlinger, "BufferQueue has been abandoned");
|
LOG_ERROR(Service_NVFlinger, "BufferQueue has been abandoned");
|
||||||
|
|
|
@ -15,7 +15,7 @@ BufferQueueCore::BufferQueueCore() = default;
|
||||||
BufferQueueCore::~BufferQueueCore() = default;
|
BufferQueueCore::~BufferQueueCore() = default;
|
||||||
|
|
||||||
void BufferQueueCore::NotifyShutdown() {
|
void BufferQueueCore::NotifyShutdown() {
|
||||||
std::scoped_lock lock(mutex);
|
std::scoped_lock lock{mutex};
|
||||||
|
|
||||||
is_shutting_down = true;
|
is_shutting_down = true;
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ BufferQueueProducer::~BufferQueueProducer() {
|
||||||
Status BufferQueueProducer::RequestBuffer(s32 slot, std::shared_ptr<GraphicBuffer>* buf) {
|
Status BufferQueueProducer::RequestBuffer(s32 slot, std::shared_ptr<GraphicBuffer>* buf) {
|
||||||
LOG_DEBUG(Service_NVFlinger, "slot {}", slot);
|
LOG_DEBUG(Service_NVFlinger, "slot {}", slot);
|
||||||
|
|
||||||
std::scoped_lock lock(core->mutex);
|
std::scoped_lock lock{core->mutex};
|
||||||
|
|
||||||
if (core->is_abandoned) {
|
if (core->is_abandoned) {
|
||||||
LOG_ERROR(Service_NVFlinger, "BufferQueue has been abandoned");
|
LOG_ERROR(Service_NVFlinger, "BufferQueue has been abandoned");
|
||||||
|
@ -65,7 +65,7 @@ Status BufferQueueProducer::SetBufferCount(s32 buffer_count) {
|
||||||
|
|
||||||
std::shared_ptr<IConsumerListener> listener;
|
std::shared_ptr<IConsumerListener> listener;
|
||||||
{
|
{
|
||||||
std::scoped_lock lock(core->mutex);
|
std::scoped_lock lock{core->mutex};
|
||||||
core->WaitWhileAllocatingLocked();
|
core->WaitWhileAllocatingLocked();
|
||||||
|
|
||||||
if (core->is_abandoned) {
|
if (core->is_abandoned) {
|
||||||
|
@ -236,7 +236,7 @@ Status BufferQueueProducer::DequeueBuffer(s32* out_slot, Fence* out_fence, bool
|
||||||
Status return_flags = Status::NoError;
|
Status return_flags = Status::NoError;
|
||||||
bool attached_by_consumer = false;
|
bool attached_by_consumer = false;
|
||||||
{
|
{
|
||||||
std::scoped_lock lock(core->mutex);
|
std::scoped_lock lock{core->mutex};
|
||||||
core->WaitWhileAllocatingLocked();
|
core->WaitWhileAllocatingLocked();
|
||||||
|
|
||||||
if (format == PixelFormat::NoFormat) {
|
if (format == PixelFormat::NoFormat) {
|
||||||
|
@ -295,7 +295,7 @@ Status BufferQueueProducer::DequeueBuffer(s32* out_slot, Fence* out_fence, bool
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
std::scoped_lock lock(core->mutex);
|
std::scoped_lock lock{core->mutex};
|
||||||
|
|
||||||
if (core->is_abandoned) {
|
if (core->is_abandoned) {
|
||||||
LOG_ERROR(Service_NVFlinger, "BufferQueue has been abandoned");
|
LOG_ERROR(Service_NVFlinger, "BufferQueue has been abandoned");
|
||||||
|
@ -320,7 +320,7 @@ Status BufferQueueProducer::DequeueBuffer(s32* out_slot, Fence* out_fence, bool
|
||||||
Status BufferQueueProducer::DetachBuffer(s32 slot) {
|
Status BufferQueueProducer::DetachBuffer(s32 slot) {
|
||||||
LOG_DEBUG(Service_NVFlinger, "slot {}", slot);
|
LOG_DEBUG(Service_NVFlinger, "slot {}", slot);
|
||||||
|
|
||||||
std::scoped_lock lock(core->mutex);
|
std::scoped_lock lock{core->mutex};
|
||||||
|
|
||||||
if (core->is_abandoned) {
|
if (core->is_abandoned) {
|
||||||
LOG_ERROR(Service_NVFlinger, "BufferQueue has been abandoned");
|
LOG_ERROR(Service_NVFlinger, "BufferQueue has been abandoned");
|
||||||
|
@ -356,7 +356,7 @@ Status BufferQueueProducer::DetachNextBuffer(std::shared_ptr<GraphicBuffer>* out
|
||||||
return Status::BadValue;
|
return Status::BadValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::scoped_lock lock(core->mutex);
|
std::scoped_lock lock{core->mutex};
|
||||||
core->WaitWhileAllocatingLocked();
|
core->WaitWhileAllocatingLocked();
|
||||||
|
|
||||||
if (core->is_abandoned) {
|
if (core->is_abandoned) {
|
||||||
|
@ -399,7 +399,7 @@ Status BufferQueueProducer::AttachBuffer(s32* out_slot,
|
||||||
return Status::BadValue;
|
return Status::BadValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::scoped_lock lock(core->mutex);
|
std::scoped_lock lock{core->mutex};
|
||||||
core->WaitWhileAllocatingLocked();
|
core->WaitWhileAllocatingLocked();
|
||||||
|
|
||||||
Status return_flags = Status::NoError;
|
Status return_flags = Status::NoError;
|
||||||
|
@ -460,7 +460,7 @@ Status BufferQueueProducer::QueueBuffer(s32 slot, const QueueBufferInput& input,
|
||||||
BufferItem item;
|
BufferItem item;
|
||||||
|
|
||||||
{
|
{
|
||||||
std::scoped_lock lock(core->mutex);
|
std::scoped_lock lock{core->mutex};
|
||||||
|
|
||||||
if (core->is_abandoned) {
|
if (core->is_abandoned) {
|
||||||
LOG_ERROR(Service_NVFlinger, "BufferQueue has been abandoned");
|
LOG_ERROR(Service_NVFlinger, "BufferQueue has been abandoned");
|
||||||
|
@ -576,7 +576,7 @@ Status BufferQueueProducer::QueueBuffer(s32 slot, const QueueBufferInput& input,
|
||||||
// Call back without the main BufferQueue lock held, but with the callback lock held so we can
|
// Call back without the main BufferQueue lock held, but with the callback lock held so we can
|
||||||
// ensure that callbacks occur in order
|
// ensure that callbacks occur in order
|
||||||
{
|
{
|
||||||
std::scoped_lock lock(callback_mutex);
|
std::scoped_lock lock{callback_mutex};
|
||||||
while (callback_ticket != current_callback_ticket) {
|
while (callback_ticket != current_callback_ticket) {
|
||||||
callback_condition.wait(callback_mutex);
|
callback_condition.wait(callback_mutex);
|
||||||
}
|
}
|
||||||
|
@ -597,7 +597,7 @@ Status BufferQueueProducer::QueueBuffer(s32 slot, const QueueBufferInput& input,
|
||||||
void BufferQueueProducer::CancelBuffer(s32 slot, const Fence& fence) {
|
void BufferQueueProducer::CancelBuffer(s32 slot, const Fence& fence) {
|
||||||
LOG_DEBUG(Service_NVFlinger, "slot {}", slot);
|
LOG_DEBUG(Service_NVFlinger, "slot {}", slot);
|
||||||
|
|
||||||
std::scoped_lock lock(core->mutex);
|
std::scoped_lock lock{core->mutex};
|
||||||
|
|
||||||
if (core->is_abandoned) {
|
if (core->is_abandoned) {
|
||||||
LOG_ERROR(Service_NVFlinger, "BufferQueue has been abandoned");
|
LOG_ERROR(Service_NVFlinger, "BufferQueue has been abandoned");
|
||||||
|
@ -623,7 +623,7 @@ void BufferQueueProducer::CancelBuffer(s32 slot, const Fence& fence) {
|
||||||
}
|
}
|
||||||
|
|
||||||
Status BufferQueueProducer::Query(NativeWindow what, s32* out_value) {
|
Status BufferQueueProducer::Query(NativeWindow what, s32* out_value) {
|
||||||
std::scoped_lock lock(core->mutex);
|
std::scoped_lock lock{core->mutex};
|
||||||
|
|
||||||
if (out_value == nullptr) {
|
if (out_value == nullptr) {
|
||||||
LOG_ERROR(Service_NVFlinger, "outValue was nullptr");
|
LOG_ERROR(Service_NVFlinger, "outValue was nullptr");
|
||||||
|
@ -673,7 +673,7 @@ Status BufferQueueProducer::Query(NativeWindow what, s32* out_value) {
|
||||||
Status BufferQueueProducer::Connect(const std::shared_ptr<IProducerListener>& listener,
|
Status BufferQueueProducer::Connect(const std::shared_ptr<IProducerListener>& listener,
|
||||||
NativeWindowApi api, bool producer_controlled_by_app,
|
NativeWindowApi api, bool producer_controlled_by_app,
|
||||||
QueueBufferOutput* output) {
|
QueueBufferOutput* output) {
|
||||||
std::scoped_lock lock(core->mutex);
|
std::scoped_lock lock{core->mutex};
|
||||||
|
|
||||||
LOG_DEBUG(Service_NVFlinger, "api = {} producer_controlled_by_app = {}", api,
|
LOG_DEBUG(Service_NVFlinger, "api = {} producer_controlled_by_app = {}", api,
|
||||||
producer_controlled_by_app);
|
producer_controlled_by_app);
|
||||||
|
@ -730,7 +730,7 @@ Status BufferQueueProducer::Disconnect(NativeWindowApi api) {
|
||||||
std::shared_ptr<IConsumerListener> listener;
|
std::shared_ptr<IConsumerListener> listener;
|
||||||
|
|
||||||
{
|
{
|
||||||
std::scoped_lock lock(core->mutex);
|
std::scoped_lock lock{core->mutex};
|
||||||
|
|
||||||
core->WaitWhileAllocatingLocked();
|
core->WaitWhileAllocatingLocked();
|
||||||
|
|
||||||
|
@ -780,7 +780,7 @@ Status BufferQueueProducer::SetPreallocatedBuffer(s32 slot,
|
||||||
return Status::BadValue;
|
return Status::BadValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::scoped_lock lock(core->mutex);
|
std::scoped_lock lock{core->mutex};
|
||||||
|
|
||||||
slots[slot] = {};
|
slots[slot] = {};
|
||||||
slots[slot].graphic_buffer = buffer;
|
slots[slot].graphic_buffer = buffer;
|
||||||
|
|
|
@ -18,7 +18,7 @@ ConsumerBase::ConsumerBase(std::unique_ptr<BufferQueueConsumer> consumer_)
|
||||||
: consumer{std::move(consumer_)} {}
|
: consumer{std::move(consumer_)} {}
|
||||||
|
|
||||||
ConsumerBase::~ConsumerBase() {
|
ConsumerBase::~ConsumerBase() {
|
||||||
std::scoped_lock lock(mutex);
|
std::scoped_lock lock{mutex};
|
||||||
|
|
||||||
ASSERT_MSG(is_abandoned, "consumer is not abandoned!");
|
ASSERT_MSG(is_abandoned, "consumer is not abandoned!");
|
||||||
}
|
}
|
||||||
|
@ -44,7 +44,7 @@ void ConsumerBase::OnFrameReplaced(const BufferItem& item) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConsumerBase::OnBuffersReleased() {
|
void ConsumerBase::OnBuffersReleased() {
|
||||||
std::scoped_lock lock(mutex);
|
std::scoped_lock lock{mutex};
|
||||||
|
|
||||||
LOG_DEBUG(Service_NVFlinger, "called");
|
LOG_DEBUG(Service_NVFlinger, "called");
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue