Commit Graph

170 Commits

Author SHA1 Message Date
Max Kellermann
a057b4f6d8 *: add lost of "noexcept" specifications 2017-06-04 12:46:48 +02:00
Max Kellermann
71f0ed8b74 *: add "noexcept" to many, many function prototypes
This eliminates some overhead, because the compiler doesn't need to
consider these functions throwing.
2017-05-08 14:44:49 +02:00
Max Kellermann
7372c931b3 event/Loop: make IsInsideOrNull() available in the NDEBUG build
Fixes build breakage by commit 4e5271fcdf7; and this method does make
sense in non-debug builds.
2017-02-09 21:21:49 +01:00
Max Kellermann
eda06993f8 event/MultiSocketMonitor: add method Reset() 2017-02-09 21:12:23 +01:00
Max Kellermann
4b30ef1cf2 event/MultiSocketMonitor: use C++11 initializer 2017-02-09 21:12:23 +01:00
Max Kellermann
e92e5e8eb8 event/MultiSocketMonitor: more API documentation
Now ClearSocketList() may only be called from PrepareSockets().
Calling it before destroying the object doesn't work properly, because
it doesn't unregister the TimeoutMonitor and the IdleMonitor.  Some of
its callers need to be fixed.
2017-02-09 21:12:23 +01:00
Max Kellermann
4e5271fcdf event/Call: allow usage during shutdown
Change EventLoop::IsInside() call to EventLoop::IsInsideOrNull().
This means that BlockingCall() may be used during shutdown, after the
main EventLoop::Run() has finished.  This is important because mixers
are currently registered in the main EventLoop.
2017-02-09 21:12:23 +01:00
Max Kellermann
5900253b85 update copyright year 2017-01-03 20:48:59 +01:00
Max Kellermann
2e182e84c3 thread/Mutex: remove ScopeLock, use std::lock_guard directly 2017-01-03 07:11:57 +01:00
Max Kellermann
b042095ac2 event/Loop: use std::chrono 2016-12-28 01:15:08 +01:00
Max Kellermann
018c5ef731 event/Loop: use C++11 initializers 2016-12-27 23:13:26 +01:00
Max Kellermann
e2b7c30811 event/BufferedSocket: pass std::exception_ptr to OnSocketError() 2016-11-02 10:38:05 +01:00
Max Kellermann
aead221184 event/ServerSocket: migrate from class Error to C++ exceptions 2016-10-28 21:22:25 +02:00
Max Kellermann
63ab7767a3 event/Call: rethrow exceptions in calling thread 2016-09-09 18:14:21 +02:00
Max Kellermann
ea0e6d9824 fs/FileSystem: RemoveFile() throws exception on error 2016-08-15 22:25:15 +02:00
Max Kellermann
22a353b8e3 event/SignalMonitor: fix obsolete nullptr check in SignalCallback() 2016-08-15 12:40:16 +02:00
Max Kellermann
b67e7df38e release v0.19.17
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
 iQIcBAABCAAGBQJXgCv6AAoJECNuiljG20USR3cP/RALB4qlhecMo6H8VwZvfjiA
 FHfhBKfdpHM3U3EEIZc1zxwHIdWk1yELtmx298vmJbWUifpYAYarXF5497tZf2XE
 AVfhTltEJEd7xB5ZULnEScM1aHzMZm5HRcHwM1UqNCsXP7PT8fmpk7gw19pKOChT
 h8V3+tpC403lCIcHcJGlkuzgZvKIZDs73g7a0+4GxD9XRAPwnMYRl3Cfd8QjKT/U
 r67AcOwQlS6hWJFs0K1JjOQwfwbRq2YmuOmFJua6n8O6CI/7t4h3faSQ0V/5qjFd
 k/pAMRtX6mz3mjVhZv4cuMy+QILWlxUNwLBIwtxSfbwcFKrN0vtIRG8O9622hTs2
 +mvYiVboWABk6hnukiDAfki96jWYHlsCJR5oIK9DZ4nBe5RVp0r9Nq/ook2AW2it
 6VgYIDBI5zS/blyJzXtzDVWEtSmLFxm21JSl+jHfWDtL6/rQGimdVOFkRw40oCBz
 seYb5kIbilrg6xq1KiBMT+EWmXMf+q+3YWQsu01blXGYGPhpUqhIr0h/qUfWAqMs
 fwIsoxsTrkQQjEWb6YWupPrdOLZ+kTAyaK+7v8B8JmzS/H3SohusMPUZKsQXl82s
 5LJVLtVxB9WRRmpfSoYqfk7CkTHOktCzVmiHb/FYUYElS9VKmJYYU8XQ25snCoZ6
 bYtERsH28q8rrpkWWEXP
 =IXD5
 -----END PGP SIGNATURE-----

Merge tag 'v0.19.17'

release v0.19.17
2016-07-09 00:46:09 +02:00
Max Kellermann
b46cf57d98 event/BufferedSocket: OnSocketReady() returns true after close
Fixes use-after-free bug (https://bugs.musicpd.org/view.php?id=4548).
2016-07-07 13:52:20 +02:00
Max Kellermann
3fd70a769a event/SignalMonitor: remove unused function SignalMonitorGetEventLoop 2016-06-20 10:48:34 +02:00
Max Kellermann
4280f84535 event/SignalMonitor: use BoundMethod instead of raw function pointer 2016-06-20 10:46:36 +02:00
Max Kellermann
829616534e event/DeferredCall: new class supposed to replace DeferredMonitor
Comes with a callback pointer instead of a virtual method, which
allows multiple instances in one class.
2016-06-17 18:26:29 +02:00
Max Kellermann
863f4d8366 util/BindMethod: new utility class for callbacks
Replaces the old BoundMethod template.
2016-06-17 18:20:19 +02:00
Max Kellermann
5ffe3773d4 event/MaskMonitor: add variant with bound method 2016-03-10 22:37:33 +01:00
Max Kellermann
e52ac0b187 event/MaskMonitor: new class to replace code in GlobalEvents and Idle 2016-03-05 19:15:50 +01:00
Max Kellermann
1aee89f5ea *: include cleanup (using iwyu) 2016-03-01 22:08:13 +01:00
Max Kellermann
1d67aa7bf2 update copyright year to 2016 2016-02-26 17:54:05 +01:00
Anthony DeRossi
de332a16d1 event/ServerSocket: fix AF_UNIX address in use error
bind fails with an "address already in use" error if the socket path
already exists.

This was broken by cbb595ba.
2015-09-30 21:50:34 +02:00
Max Kellermann
cbb595ba83 event/ServerSocket: use AllocatedSocketAddress to build local socket address 2015-07-22 11:05:48 +02:00
Max Kellermann
fdeec0307e event/ServerSocket: use AllocatedSocketAddress for OneServerSocket::address
Manages memory automatically.
2015-07-22 11:05:08 +02:00
Max Kellermann
7de0a621e3 net/StaticSocketAddress: replace cast operator with GetAddress()
The implicit cast operator can be very dangerous.
2015-07-22 10:55:57 +02:00
Max Kellermann
83752e9349 net/ToString: rename sockaddr_to_string() to ToString() 2015-07-22 10:26:18 +02:00
Max Kellermann
6f22452b54 net/Resolver: move sockaddr_to_string() to ToString.cxx 2015-07-22 10:03:36 +02:00
Max Kellermann
b31d171ae8 *: doxygen fixups 2015-03-17 11:21:43 +01:00
Max Kellermann
5222c684d3 event/ServerSocket: #ifdef out local socket support on Windows 2015-03-05 10:07:07 +01:00
Max Kellermann
12de22d3bb net/StaticSocketAdress: new class wrapping struct sockaddr_storage 2015-02-13 21:16:43 +01:00
Max Kellermann
4e30e74739 net/SocketAddress: light wrapper for struct sockaddr 2015-02-10 22:06:06 +01:00
Max Kellermann
42890b9acf system/{Resolver,Socket{Error,Util}}: move to new library libnet.a 2015-02-10 22:06:06 +01:00
Max Kellermann
0cf57cc7ca event/ServerSocket: remove obsolete macro DEFAULT_PORT 2015-02-10 20:27:45 +01:00
Max Kellermann
68fcbaf4c8 event/ServerSocket: remove obsolete typedef 2015-02-10 20:24:23 +01:00
Max Kellermann
712ed555e6 Copyright year 2015 2015-01-01 19:48:13 +01:00
Max Kellermann
adfc5db3d2 Merge branch 'v0.19.x' 2014-12-15 00:46:56 +01:00
Max Kellermann
3c29aa6271 event/Loop: read the "again" flag while holding mutex 2014-12-14 14:47:36 +01:00
Max Kellermann
88b75b57d0 playlist, InotifySource, ...: update GLib comments 2014-12-04 23:33:08 +01:00
Max Kellermann
a8ebfd7a92 event/DeferredMonitor: include cleanup 2014-11-25 10:44:06 +01:00
Max Kellermann
dc03f003ac release v0.18.18
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
 iQIcBAABAgAGBQJUa62OAAoJECNuiljG20US1CkP/3YaAg76hJDaeFAyi7/10lOs
 yI8tPmpQk8S+nuclsBJeIr+9xNRsjb1ebW4tI9uBRxqMT10SF7rMCH/qAmgnS9tQ
 6M48hF0o9xegjz4x5BosEJjXtiekYN068Xi/hk+H27guVy14f6Xx7oRpdr5oI/O0
 F83D1V2+vs6FuOyn42UQQNHVlYMac5SScHoSFomnwRYWI2wb2ay4H5Dlykb5BUl0
 tTjJ2lYwN18vUoMxjmCNS+bLd7jag6FZ/PXntB1zXe22R17eAIuFZAMKaQvnQtUi
 QZjFPhpd+mBsZLfokB3belyNNb4F6qSG2W6lZrFRB+SU/LqnY2AL/dxPJD9eiufs
 5jEIOw9hNBBKo217+hkPwp5pAF50u11tKXUXbKGeR42zAO0zll/+g2afVwoqdAfD
 llPDyQyXiB3tmA1bgJD7u9gaud3UaaXoxajPb5LnmklzGxiN5u1rnoo+E5ppBvQ4
 31wPHGpzsjxEC7Xn9hErPP17jYXY1HT/xRb8XZNrFqJVZxSyjqQlDWomhCWDcvPc
 Du1PyKaQ08zgElEM5trwC9RjJxQdr0sckQcTnYC/0ksfJ7Nhh8M2yepEI/gmWbnO
 JBQ7YzpQhE9oMMH8jzVLLdC44yF6QvXcGQ3D9eUfwvPk9Z70mHlNI3Q6kbZ76U5j
 RHLp+oSaxFUXfPdciZaw
 =GO+k
 -----END PGP SIGNATURE-----

Merge tag 'v0.18.18' into v0.19.x
2014-11-18 21:38:44 +01:00
Max Kellermann
3f5f96ac91 event/ServerSocket: fix get_remote_uid() error value
Must return -1 on error, not 0.  0 is root.
2014-11-18 20:53:59 +01:00
Max Kellermann
a9c3ca8606 event/IdleMonitor: remove redundant comment 2014-10-10 22:39:11 +02:00
Max Kellermann
c84508ae9f Merge branch 'v0.18.x' 2014-08-24 13:20:35 +02:00
Max Kellermann
f06fe1ea98 event/TimeoutMonitor: really reset "active" flag before invoking OnTimeout()
The previous commit was broken.  D'oh!
2014-08-24 13:19:50 +02:00
Max Kellermann
77f2cd6513 Merge branch 'v0.18.x' 2014-08-24 13:15:17 +02:00