Age | Commit message (Collapse) | Author | |
---|---|---|---|
2018-07-06 | Merge branch 'v0.20.x' | Max Kellermann | |
2018-07-06 | lib/nfs/Connection: use new class NfsClientError | Max Kellermann | |
Allows callers to extract the NFS error code. | |||
2018-02-24 | Merge tag 'v0.20.18' | Max Kellermann | |
release v0.20.18 | |||
2018-02-24 | lib/nfs/FileReader: move sys/stat.h to header because "struct stat" may be macro | Max Kellermann | |
It indeed is a macro on Windows. | |||
2018-02-24 | lib/nfs/Connection: use winsock2.h instead of poll.h on Windows | Max Kellermann | |
2017-11-12 | lib/nfs: add "noexcept" | Max Kellermann | |
2017-11-12 | event/IdleMonitor: add "noexcept" | Max Kellermann | |
2017-11-10 | lib/nfs: migrate from DeferredMonitor to DeferEvent | Max Kellermann | |
2017-11-10 | lib/nfs/FileReader: use C++11 initializers | Max Kellermann | |
2017-11-10 | event/SocketMonitor: add "noexcept" | Max Kellermann | |
2017-08-29 | lib/nfs/Connection: migrate from TimeoutMonitor to TimerEvent | Max Kellermann | |
2017-08-10 | event/SocketMonitor: use class SocketDescriptor | Max Kellermann | |
2017-08-10 | lib/nfs/Connection: use class SocketDescriptor | Max Kellermann | |
2017-06-04 | Merge tag 'v0.20.9' | Max Kellermann | |
release v0.20.9 | |||
2017-06-04 | *: add lost of "noexcept" specifications | Max Kellermann | |
2017-05-15 | *: add "noexcept" to many, many function prototypes | Max Kellermann | |
See commit 71f0ed8b7499011b53f90998ebfbd3250fd80948 | |||
2017-05-15 | Merge tag 'v0.20.7' | Max Kellermann | |
release v0.20.7 | |||
2017-05-08 | *: add "noexcept" to many, many function prototypes | Max Kellermann | |
This eliminates some overhead, because the compiler doesn't need to consider these functions throwing. | |||
2017-02-08 | lib/nfs/FileReader: remove debug line | Max Kellermann | |
2017-02-06 | configure.ac: prepare for 0.20.5 | Max Kellermann | |
2017-02-01 | Merge tag 'v0.20.4' | Max Kellermann | |
release v0.20.4 | |||
2017-02-01 | lib/nfs/Connection: detect socket hangup and unregister from epoll | Max Kellermann | |
Fixes race condition when epoll_ctl() gets called after the socket has been closed, which may affect a different socket created by another thread meanwhile. | |||
2017-02-01 | lib/nfs/Connection: detect libnfs reconnect | Max Kellermann | |
When rpc_reconnect_requeue() gets called from inside nfs_service(), the NfsInputStream can stall completely because the old socket has been unregistered from epoll automatically, but the new one has never been registered. Therefore, nfs_service() will never be called again. This kludge attempts to detect this condition by checking nfs_which_events()==POLLOUT. https://bugs.musicpd.org/view.php?id=4081 | |||
2017-01-26 | lib/nfs/FileReader: use nfs_get_event_loop() | Max Kellermann | |
Make sure we're using the same EventLoop as the NfsManager. | |||
2017-01-26 | lib/nfs/Glue: add EventLoop& accessor | Max Kellermann | |
2017-01-25 | lib/nfs/{FileReader,Glue}: pass EventLoop& | Max Kellermann | |
Eliminate dependency on io_thread_get(). | |||
2017-01-15 | lib/nfs: add more API documentation | Max Kellermann | |
2017-01-03 | update copyright year | Max Kellermann | |
2017-01-03 | thread/Mutex: remove ScopeLock, use std::lock_guard directly | Max Kellermann | |
2016-12-29 | lib/nfs/Blocking, neighbor/smbclient: pass std::chrono::duration to ↵ | Max Kellermann | |
Cond::timed_wait() | |||
2016-12-28 | event/Loop: use std::chrono | Max Kellermann | |
2016-11-10 | util/Error: remove obsolete class | Max Kellermann | |
2016-09-16 | {input,storage}/nfs: use C++ exceptions instead of class Error | Max Kellermann | |
2016-09-09 | input/Plugin: migrate open() from class Error to C++ exceptions | Max Kellermann | |
2016-08-05 | Merge tag 'v0.19.18' | Max Kellermann | |
release v0.19.18 | |||
2016-08-05 | lib/nfs/Manager: add Compare(ManagedConnection, ManagedConnection) | Max Kellermann | |
Required for Boost 1.61, which uses that overload in a BOOST_ASSERT(). | |||
2016-03-01 | *: include cleanup (using iwyu) | Max Kellermann | |
2016-02-26 | update copyright year to 2016 | Max Kellermann | |
2015-11-06 | util/StringUtil: move comparison functions to StringCompare.cxx | Max Kellermann | |
2015-10-19 | util/DeleteDisposer: new utility class | Max Kellermann | |
2015-01-01 | Copyright year 2015 | Max Kellermann | |
2014-12-15 | storage/nfs: add timeout | Max Kellermann | |
2014-12-15 | lib/nfs/Connection: unregister socket with SocketMonitor::Steal() | Max Kellermann | |
SocketMonitor::Cancel() does not actually unregister the socket; it only disables the event. | |||
2014-12-15 | lib/nfs/Connection: implement mount timeout | Max Kellermann | |
2014-12-15 | lib/nfs/Connection: add debug flag "in_destroy" | Max Kellermann | |
2014-12-14 | lib/nfs/Connection: add assertion | Max Kellermann | |
2014-12-14 | lib/nfs/Connection: fix reconnect after mount failure | Max Kellermann | |
When mounting had not yet finished, SocketMonitor::IsDefined() was always false, due to the workaround at the beginning of the function that calls SocketMonitor::Steal(). This commit drops the IsDefined() check because it was never necessary and breaks reconnect. | |||
2014-12-14 | lib/nfs/Connection: fix typo in code comment | Max Kellermann | |
2014-12-14 | lib/nfs/Connection: fix memory leak (and assertion failure) | Max Kellermann | |
nfs_destroy_context() will invoke all pending callbacks with err==-EINTR. In CancellableCallback::Callback(), this will invoke NfsConnection::DeferClose(), which however is only designed to be called from nfs_service(). In non-debug mode, this will leak memory because nfs_close_async() is never called. Workaround: before nfs_destroy_context(), invoke nfs_close_async() on all pending file handles. | |||
2014-12-14 | lib/nfs/Connection: move code to Service() | Max Kellermann | |