Alternative mutex
This commit is contained in:
@@ -91,7 +91,7 @@ int XmaContext::Setup(uint32_t id, Memory* memory, uint32_t guest_ptr) {
|
||||
}
|
||||
|
||||
bool XmaContext::Work() {
|
||||
std::lock_guard<std::mutex> lock(lock_);
|
||||
std::lock_guard<xe_mutex> lock(lock_);
|
||||
if (!is_allocated() || !is_enabled()) {
|
||||
return false;
|
||||
}
|
||||
@@ -106,7 +106,7 @@ bool XmaContext::Work() {
|
||||
}
|
||||
|
||||
void XmaContext::Enable() {
|
||||
std::lock_guard<std::mutex> lock(lock_);
|
||||
std::lock_guard<xe_mutex> lock(lock_);
|
||||
|
||||
auto context_ptr = memory()->TranslateVirtual(guest_ptr());
|
||||
XMA_CONTEXT_DATA data(context_ptr);
|
||||
@@ -134,7 +134,7 @@ bool XmaContext::Block(bool poll) {
|
||||
}
|
||||
|
||||
void XmaContext::Clear() {
|
||||
std::lock_guard<std::mutex> lock(lock_);
|
||||
std::lock_guard<xe_mutex> lock(lock_);
|
||||
XELOGAPU("XmaContext: reset context {}", id());
|
||||
|
||||
auto context_ptr = memory()->TranslateVirtual(guest_ptr());
|
||||
@@ -151,14 +151,14 @@ void XmaContext::Clear() {
|
||||
}
|
||||
|
||||
void XmaContext::Disable() {
|
||||
std::lock_guard<std::mutex> lock(lock_);
|
||||
std::lock_guard<xe_mutex> lock(lock_);
|
||||
XELOGAPU("XmaContext: disabling context {}", id());
|
||||
set_is_enabled(false);
|
||||
}
|
||||
|
||||
void XmaContext::Release() {
|
||||
// Lock it in case the decoder thread is working on it now.
|
||||
std::lock_guard<std::mutex> lock(lock_);
|
||||
std::lock_guard<xe_mutex> lock(lock_);
|
||||
assert_true(is_allocated_ == true);
|
||||
|
||||
set_is_allocated(false);
|
||||
|
||||
@@ -200,7 +200,7 @@ class XmaContext {
|
||||
|
||||
uint32_t id_ = 0;
|
||||
uint32_t guest_ptr_ = 0;
|
||||
std::mutex lock_;
|
||||
xe_mutex lock_;
|
||||
bool is_allocated_ = false;
|
||||
bool is_enabled_ = false;
|
||||
// bool is_dirty_ = true;
|
||||
|
||||
Reference in New Issue
Block a user