- 23 Apr, 2020 3 commits
-
-
Max Kellermann authored
This fixes a freeze bug in the NFS input/storage plugins: when libnfs auto-reconnets after a failure, it installs the new socket on the same file descriptor number. MPD's attempt to unregister the old socket by calling SocketMonitor::Steal() from NfsConnection::ScheduleSocket() fails because the new/old socket number is not registered in epoll, so epoll_ctl() returns ENOENT. The problem is that it left `scheduled_flags`, and so subsequent Schedule() calls will use `EPOLL_CTL_MOD`, which will fail again and again. Instead, we need to use `EPOLL_CTL_ADD` to register the new socket. Closes https://github.com/MusicPlayerDaemon/MPD/issues/806 Closes https://github.com/MusicPlayerDaemon/MPD/issues/756
-
Max Kellermann authored
These flags are output-only. Using them here is misleading.
-
Max Kellermann authored
-
- 02 Apr, 2020 1 commit
-
-
Max Kellermann authored
The event library uses various libnet.a classes, e.g. SocketDescriptor.
-
- 26 Mar, 2020 1 commit
-
-
Max Kellermann authored
-
- 23 Dec, 2019 1 commit
-
-
Max Kellermann authored
Can fail if somebody calls Break().
-
- 22 Dec, 2019 5 commits
-
-
Max Kellermann authored
The ALSA "null" driver opens /dev/null and returns the file handle from snd_pcm_poll_descriptors(), but /dev/null cannot be used with epoll, the epoll_ctl() system call returns -EPERM. This means that the ALSA output hangs, eventually freezing the whole MPD process. This commit adds a workaround to the MultiSocketMonitor class which is used by the ALSA output plugin. Closes https://github.com/MusicPlayerDaemon/MPD/issues/695
-
Max Kellermann authored
-
Max Kellermann authored
SetReady() does this already.
-
Max Kellermann authored
-
Max Kellermann authored
-
- 20 Dec, 2019 1 commit
-
-
Max Kellermann authored
-
- 18 Dec, 2019 2 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
-
- 04 Apr, 2019 2 commits
-
-
Max Kellermann authored
Expect OnSocketReady() to cancel events. If it returns false, the SocketMonitor may be destructed already. This fixes a use-after-free bug in the "httpd" output plugin.
-
Max Kellermann authored
-
- 20 Mar, 2019 3 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
Closes https://github.com/MusicPlayerDaemon/MPD/issues/510
-
Max Kellermann authored
.. and not "UNIX domain socket. Be consistent about the naming.
-
- 25 Feb, 2019 1 commit
-
-
Max Kellermann authored
-
- 05 Feb, 2019 1 commit
-
-
Max Kellermann authored
This replaces the old `dead` flag which was unreliable; it was `false` if the EventThread was not yet started, which could cause deadlocks in BlockingCall().
-
- 09 Dec, 2018 1 commit
-
-
Jacob Vosmaer authored
-
- 19 Nov, 2018 1 commit
-
-
Max Kellermann authored
Since we switched from autotools to Meson in commit 94592c14, we don't need to include `config.h` early to properly enable large file support. Meson passes the required macros on the compiler command line instead of defining them in `config.h`. This means we can include `config.h` at any time, whenever we want to check its macros, and there are no ordering constraints.
-
- 14 Nov, 2018 1 commit
-
-
Max Kellermann authored
MPD's default is 100ms, which is too long for the real-time I/O thread. The OutputThread has 100us, but the real-time I/O thread might have tighter deadlines. This change has currently no effect (I believe), because nobody uses timers on the RTIO thread.
-
- 11 Nov, 2018 1 commit
-
-
Max Kellermann authored
-
- 31 Oct, 2018 1 commit
-
-
Max Kellermann authored
-
- 30 Oct, 2018 10 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-
- 14 Oct, 2018 1 commit
-
-
Max Kellermann authored
So long, autotools! This is my last MPD related project to migrate away from it. It has its strengths, but also very obvious weaknesses and weirdnesses. Today, many of its quirks are not needed anymore, and are cumbersome and slow. Now welcome our new Meson overlords!
-
- 22 Aug, 2018 1 commit
-
-
Max Kellermann authored
-
- 21 Aug, 2018 1 commit
-
-
Max Kellermann authored
The new implementation is copied from another project and is BSD-licensed. It is exception-safe and can parse IPv6 scope ids with interface names.
-
- 20 Aug, 2018 1 commit
-
-
Max Kellermann authored
-