[mpp_list]: Use class inheritance

Change-Id: I3ef33ca9bdcfea80a6c05a8c69db2d4938a5d0eb
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
This commit is contained in:
Herman Chen
2021-01-19 17:06:16 +08:00
parent 3f5b640345
commit 0ce3ed3048
3 changed files with 10 additions and 57 deletions

View File

@@ -31,7 +31,8 @@
typedef void *(*node_destructor)(void *);
struct mpp_list_node;
class mpp_list
class mpp_list : public MppMutexCond
{
public:
mpp_list(node_destructor func = NULL);
@@ -63,22 +64,7 @@ public:
RK_S32 flush();
// open lock function for external combination usage
void lock();
void unlock();
RK_S32 trylock();
// open lock function for external auto lock
Mutex *mutex();
void wait();
RK_S32 wait(RK_S64 timeout);
void signal();
private:
Mutex mMutex;
Condition mCondition;
node_destructor destroy;
struct mpp_list_node *head;
RK_S32 count;

View File

@@ -194,11 +194,13 @@ public:
MppMutexCond() {};
~MppMutexCond() {};
void lock() { mLock.lock(); }
void unlock() { mLock.unlock(); }
void wait() { mCondition.wait(mLock); }
void signal() { mCondition.signal(); }
Mutex *mutex() { return &mLock; }
void lock() { mLock.lock(); }
void unlock() { mLock.unlock(); }
void trylock() { mLock.trylock(); }
void wait() { mCondition.wait(mLock); }
RK_S32 wait(RK_S64 timeout) { return mCondition.timedwait(mLock, timeout); }
void signal() { mCondition.signal(); }
Mutex *mutex() { return &mLock; }
private:
Mutex mLock;

View File

@@ -294,50 +294,15 @@ RK_S32 mpp_list::flush()
count--;
}
}
mCondition.signal();
signal();
return 0;
}
void mpp_list::lock()
{
mMutex.lock();
}
void mpp_list::unlock()
{
mMutex.unlock();
}
RK_S32 mpp_list::trylock()
{
return mMutex.trylock();
}
Mutex *mpp_list::mutex()
{
return &mMutex;
}
RK_U32 mpp_list::get_key()
{
return keys++;
}
void mpp_list::wait()
{
mCondition.wait(mMutex);
}
RK_S32 mpp_list::wait(RK_S64 timeout)
{
return mCondition.timedwait(mMutex, timeout);
}
void mpp_list::signal()
{
mCondition.signal();
}
mpp_list::mpp_list(node_destructor func)
: destroy(NULL),
head(NULL),