Commit 08f5b9f1 authored by Max Kellermann's avatar Max Kellermann

event/MultiSocketMonitor: add method ClearSocketList()

parent 793962c5
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
#include "config.h" #include "config.h"
#include "MultiSocketMonitor.hxx" #include "MultiSocketMonitor.hxx"
#include "Loop.hxx"
#include <algorithm> #include <algorithm>
...@@ -35,6 +36,14 @@ MultiSocketMonitor::~MultiSocketMonitor() ...@@ -35,6 +36,14 @@ MultiSocketMonitor::~MultiSocketMonitor()
// TODO // TODO
} }
void
MultiSocketMonitor::ClearSocketList()
{
assert(GetEventLoop().IsInsideOrNull());
fds.clear();
}
#ifndef WIN32 #ifndef WIN32
void void
......
...@@ -126,6 +126,11 @@ public: ...@@ -126,6 +126,11 @@ public:
} }
/** /**
* Remove all sockets.
*/
void ClearSocketList();
/**
* Update the known sockets by invoking the given function for * Update the known sockets by invoking the given function for
* each one; its return value is the events bit mask. A * each one; its return value is the events bit mask. A
* return value of 0 means the socket will be removed from the * return value of 0 means the socket will be removed from the
......
...@@ -91,8 +91,10 @@ static constexpr Domain alsa_mixer_domain("alsa_mixer"); ...@@ -91,8 +91,10 @@ static constexpr Domain alsa_mixer_domain("alsa_mixer");
int int
AlsaMixerMonitor::PrepareSockets() AlsaMixerMonitor::PrepareSockets()
{ {
if (mixer == nullptr) if (mixer == nullptr) {
ClearSocketList();
return -1; return -1;
}
int count = snd_mixer_poll_descriptors_count(mixer); int count = snd_mixer_poll_descriptors_count(mixer);
if (count < 0) if (count < 0)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment