Fix re-entrancy issues in CPluginManager by using ReentrantList.

This commit is contained in:
David Anderson
2015-10-31 17:24:22 -07:00
parent 709149fbed
commit ab1b915a3c
3 changed files with 98 additions and 178 deletions
+11
View File
@@ -60,6 +60,7 @@ public:
class iterator
{
friend class ReentrantList;
public:
iterator(ReentrantList& list)
: iterator(&list)
@@ -145,6 +146,16 @@ public:
}
}
template <typename U>
void insertBefore(iterator& where, U &&obj) {
BaseType::insertBefore(where.impl_, ke::Forward<U>(obj));
}
template <typename U>
bool contains(const U &obj) {
return BaseType::find(obj) != BaseType::end();
}
private:
BaseTypeIter impl_begin() {
return BaseType::begin();