diff options
author | Max Kellermann <max@duempel.org> | 2014-09-28 19:18:48 +0200 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2014-10-01 19:49:38 +0200 |
commit | fb4e6ac923574a8544c94e4deceaf774a4e2504c (patch) | |
tree | ff4a449789f613ad0e08d6ca86560b5dbbb3a475 /src/lib/nfs/Connection.cxx | |
parent | 3560dc4be60e6e3c47c687b9702a62a610909546 (diff) | |
download | mpd-fb4e6ac923574a8544c94e4deceaf774a4e2504c.tar.gz mpd-fb4e6ac923574a8544c94e4deceaf774a4e2504c.tar.xz mpd-fb4e6ac923574a8544c94e4deceaf774a4e2504c.zip |
lib/nfs/Cancellable: use boost::intrusive::list
Reduce Remove() overhead because we don't have to walk the list to
find an iterator by reference.
Diffstat (limited to '')
-rw-r--r-- | src/lib/nfs/Connection.cxx | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/lib/nfs/Connection.cxx b/src/lib/nfs/Connection.cxx index d37817a86..13f7cd89c 100644 --- a/src/lib/nfs/Connection.cxx +++ b/src/lib/nfs/Connection.cxx @@ -161,7 +161,7 @@ NfsConnection::Open(const char *path, int flags, NfsCallback &callback, auto &c = callbacks.Add(callback, *this); if (!c.Open(context, path, flags, error)) { - callbacks.RemoveLast(); + callbacks.Remove(c); return false; } @@ -176,7 +176,7 @@ NfsConnection::Stat(struct nfsfh *fh, NfsCallback &callback, Error &error) auto &c = callbacks.Add(callback, *this); if (!c.Stat(context, fh, error)) { - callbacks.RemoveLast(); + callbacks.Remove(c); return false; } @@ -192,7 +192,7 @@ NfsConnection::Read(struct nfsfh *fh, uint64_t offset, size_t size, auto &c = callbacks.Add(callback, *this); if (!c.Read(context, fh, offset, size, error)) { - callbacks.RemoveLast(); + callbacks.Remove(c); return false; } |