mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
Code cleanup
This commit is contained in:
parent
0f6a90098b
commit
5fd15c06a3
1 changed files with 17 additions and 24 deletions
|
@ -13,40 +13,33 @@ struct Mailbox {
|
|||
T *data_ = nullptr;
|
||||
|
||||
T *Wait() {
|
||||
T *data;
|
||||
{
|
||||
std::unique_lock<std::mutex> lock(mutex_);
|
||||
while (!data_) {
|
||||
condvar_.wait(lock);
|
||||
}
|
||||
data = data_;
|
||||
std::unique_lock<std::mutex> lock(mutex_);
|
||||
while (!data_) {
|
||||
condvar_.wait(lock);
|
||||
}
|
||||
return data;
|
||||
return data_;
|
||||
}
|
||||
|
||||
bool Poll(T **data) {
|
||||
bool retval = false;
|
||||
{
|
||||
std::unique_lock<std::mutex> lock(mutex_);
|
||||
if (data_) {
|
||||
*data = data_;
|
||||
retval = true;
|
||||
}
|
||||
std::unique_lock<std::mutex> lock(mutex_);
|
||||
if (data_) {
|
||||
*data = data_;
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
return retval;
|
||||
}
|
||||
|
||||
bool Send(T *data) {
|
||||
bool success = false;
|
||||
{
|
||||
std::unique_lock<std::mutex> lock(mutex_);
|
||||
if (!data_) {
|
||||
data_ = data;
|
||||
success = true;
|
||||
}
|
||||
std::unique_lock<std::mutex> lock(mutex_);
|
||||
if (!data_) {
|
||||
data_ = data;
|
||||
condvar_.notify_one();
|
||||
return true;
|
||||
} else {
|
||||
// Already has value.
|
||||
return false;
|
||||
}
|
||||
return success;
|
||||
}
|
||||
|
||||
void AddRef() {
|
||||
|
|
Loading…
Add table
Reference in a new issue