[*] Harden AuFutures against OOM
This commit is contained in:
parent
41a7ddf51c
commit
1e53972a2a
@ -43,6 +43,7 @@ public:
|
|||||||
|
|
||||||
void OnComplete(CompleteCallback_f callback)
|
void OnComplete(CompleteCallback_f callback)
|
||||||
{
|
{
|
||||||
|
AU_DEBUG_MEMCRUNCH;
|
||||||
AU_LOCK_GUARD(this->mutex);
|
AU_LOCK_GUARD(this->mutex);
|
||||||
|
|
||||||
if (this->bComplete)
|
if (this->bComplete)
|
||||||
@ -77,6 +78,7 @@ public:
|
|||||||
|
|
||||||
void OnFailure(ErrorCallback_f onFailure)
|
void OnFailure(ErrorCallback_f onFailure)
|
||||||
{
|
{
|
||||||
|
AU_DEBUG_MEMCRUNCH;
|
||||||
AU_LOCK_GUARD(this->mutex);
|
AU_LOCK_GUARD(this->mutex);
|
||||||
|
|
||||||
if (this->bFailed)
|
if (this->bFailed)
|
||||||
@ -112,6 +114,7 @@ public:
|
|||||||
template<typename T1 = T, AuEnableIf_t<!AuIsVoid_v<T1>> * = nullptr>
|
template<typename T1 = T, AuEnableIf_t<!AuIsVoid_v<T1>> * = nullptr>
|
||||||
void Complete(Move_t value)
|
void Complete(Move_t value)
|
||||||
{
|
{
|
||||||
|
AU_DEBUG_MEMCRUNCH;
|
||||||
AU_LOCK_GUARD(this->mutex);
|
AU_LOCK_GUARD(this->mutex);
|
||||||
ExchangeDone();
|
ExchangeDone();
|
||||||
|
|
||||||
@ -385,6 +388,7 @@ struct AuWaterfall : AuEnableSharedFromThis<AuWaterfall>
|
|||||||
|
|
||||||
void OnFailure(AuVoidFunc onFailure)
|
void OnFailure(AuVoidFunc onFailure)
|
||||||
{
|
{
|
||||||
|
AU_DEBUG_MEMCRUNCH;
|
||||||
AU_LOCK_GUARD(this->mutex);
|
AU_LOCK_GUARD(this->mutex);
|
||||||
|
|
||||||
if (this->bDone)
|
if (this->bDone)
|
||||||
@ -406,6 +410,7 @@ struct AuWaterfall : AuEnableSharedFromThis<AuWaterfall>
|
|||||||
|
|
||||||
void OnSuccess(AuVoidFunc onSuccess)
|
void OnSuccess(AuVoidFunc onSuccess)
|
||||||
{
|
{
|
||||||
|
AU_DEBUG_MEMCRUNCH;
|
||||||
AU_LOCK_GUARD(this->mutex);
|
AU_LOCK_GUARD(this->mutex);
|
||||||
|
|
||||||
if (this->bDone)
|
if (this->bDone)
|
||||||
|
Loading…
Reference in New Issue
Block a user