mirror of
https://github.com/nyanmisaka/mpp.git
synced 2025-10-06 01:26:49 +08:00
[mpp_list]: Add more wait functions
Signed-off-by: Herman Chen <herman.chen@rock-chips.com> Change-Id: Icc8457ce1bff75eee7e5b8b8cc34360a339571a8
This commit is contained in:
@@ -67,7 +67,9 @@ public:
|
|||||||
|
|
||||||
// for list wait
|
// for list wait
|
||||||
MPP_RET wait_lt(RK_S64 timeout, RK_S32 val);
|
MPP_RET wait_lt(RK_S64 timeout, RK_S32 val);
|
||||||
|
MPP_RET wait_le(RK_S64 timeout, RK_S32 val);
|
||||||
MPP_RET wait_gt(RK_S64 timeout, RK_S32 val);
|
MPP_RET wait_gt(RK_S64 timeout, RK_S32 val);
|
||||||
|
MPP_RET wait_ge(RK_S64 timeout, RK_S32 val);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
node_destructor destroy;
|
node_destructor destroy;
|
||||||
|
@@ -300,6 +300,22 @@ RK_S32 mpp_list::flush()
|
|||||||
}
|
}
|
||||||
|
|
||||||
MPP_RET mpp_list::wait_lt(RK_S64 timeout, RK_S32 val)
|
MPP_RET mpp_list::wait_lt(RK_S64 timeout, RK_S32 val)
|
||||||
|
{
|
||||||
|
if (list_size() < val)
|
||||||
|
return MPP_OK;
|
||||||
|
|
||||||
|
if (!timeout)
|
||||||
|
return MPP_NOK;
|
||||||
|
|
||||||
|
if (timeout < 0)
|
||||||
|
wait();
|
||||||
|
else
|
||||||
|
wait(timeout);
|
||||||
|
|
||||||
|
return list_size() < val ? MPP_OK : MPP_NOK;
|
||||||
|
}
|
||||||
|
|
||||||
|
MPP_RET mpp_list::wait_le(RK_S64 timeout, RK_S32 val)
|
||||||
{
|
{
|
||||||
if (list_size() <= val)
|
if (list_size() <= val)
|
||||||
return MPP_OK;
|
return MPP_OK;
|
||||||
@@ -316,6 +332,22 @@ MPP_RET mpp_list::wait_lt(RK_S64 timeout, RK_S32 val)
|
|||||||
}
|
}
|
||||||
|
|
||||||
MPP_RET mpp_list::wait_gt(RK_S64 timeout, RK_S32 val)
|
MPP_RET mpp_list::wait_gt(RK_S64 timeout, RK_S32 val)
|
||||||
|
{
|
||||||
|
if (list_size() > val)
|
||||||
|
return MPP_OK;
|
||||||
|
|
||||||
|
if (!timeout)
|
||||||
|
return MPP_NOK;
|
||||||
|
|
||||||
|
if (timeout < 0)
|
||||||
|
wait();
|
||||||
|
else
|
||||||
|
wait(timeout);
|
||||||
|
|
||||||
|
return list_size() > val ? MPP_OK : MPP_NOK;
|
||||||
|
}
|
||||||
|
|
||||||
|
MPP_RET mpp_list::wait_ge(RK_S64 timeout, RK_S32 val)
|
||||||
{
|
{
|
||||||
if (list_size() >= val)
|
if (list_size() >= val)
|
||||||
return MPP_OK;
|
return MPP_OK;
|
||||||
|
Reference in New Issue
Block a user