diff options
Diffstat (limited to 'src/client/ClientList.hxx')
-rw-r--r-- | src/client/ClientList.hxx | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/client/ClientList.hxx b/src/client/ClientList.hxx index 4d9a96dcb..7d20a8737 100644 --- a/src/client/ClientList.hxx +++ b/src/client/ClientList.hxx @@ -20,21 +20,21 @@ #ifndef MPD_CLIENT_LIST_HXX #define MPD_CLIENT_LIST_HXX -#include <list> +#include "Client.hxx" class Client; class ClientList { - typedef std::list<Client *> List; + typedef boost::intrusive::list<Client, + boost::intrusive::constant_time_size<true>> List; const unsigned max_size; - unsigned size; List list; public: ClientList(unsigned _max_size) - :max_size(_max_size), size(0) {} + :max_size(_max_size) {} ~ClientList() { CloseAll(); } @@ -48,12 +48,11 @@ public: } bool IsFull() const { - return size >= max_size; + return list.size() >= max_size; } void Add(Client &client) { - list.push_front(&client); - ++size; + list.push_front(client); } void Remove(Client &client); |