#include <stdint.h>
#ifdef __cplusplus
-#include <list>
-#endif
-
-#include "threads/mutex.hpp"
-
-#ifdef __cplusplus
+#include <list>
/**
- * List implementation with a Mutex.
+ * List implementation.
*/
template<class T> class List : protected std::list<T> {
-private:
- Mutex _mutex;
-
public:
- virtual ~List() {}
-
- void lock () { _mutex.lock(); }
- void unlock() { _mutex.unlock(); }
-
// make iterator of std::list visible
using std::list<T>::iterator;
using std::list<T>::reverse_iterator;
};
+// Required by LockedList.
+#include "threads/mutex.hpp"
+
+
+/**
+ * List implementation with a Mutex.
+ */
+template<class T> class LockedList : public List<T> {
+private:
+ Mutex _mutex;
+
+public:
+ virtual ~LockedList() {}
+
+ void lock () { _mutex.lock(); }
+ void unlock() { _mutex.unlock(); }
+};
+
+
// Required by DumpList.
#include "mm/dumpmemory.hpp"
#else
typedef struct List List;
+typedef struct LockedList LockedList;
typedef struct DumpList DumpList;
#endif