diff options
author | Vasil Dimov <vd@FreeBSD.org> | 2021-02-12 14:05:53 +0100 |
---|---|---|
committer | Vasil Dimov <vd@FreeBSD.org> | 2021-03-01 13:22:18 +0100 |
commit | ea1845315a109eb105113cb5fbb6f869e1cf010c (patch) | |
tree | 9399f7d888fe98a400aea3f5350214364c55ace7 /src/util/sock.h | |
parent | 78fdfbea666201b25919dd67454eb04d6a34326f (diff) |
net: extend Sock::Wait() to report a timeout
Previously `Sock::Wait()` would not have signaled to the caller whether
a timeout or one of the requested events occurred since that was not
needed by any of the callers.
Such functionality will be needed in the I2P implementation, thus extend
the `Sock::Wait()` method.
Diffstat (limited to 'src/util/sock.h')
-rw-r--r-- | src/util/sock.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/util/sock.h b/src/util/sock.h index 23c3c35dad..2d9cac14af 100644 --- a/src/util/sock.h +++ b/src/util/sock.h @@ -105,9 +105,14 @@ public: * Wait for readiness for input (recv) or output (send). * @param[in] timeout Wait this much for at least one of the requested events to occur. * @param[in] requested Wait for those events, bitwise-or of `RECV` and `SEND`. + * @param[out] occurred If not nullptr and `true` is returned, then upon return this + * indicates which of the requested events occurred. A timeout is indicated by return + * value of `true` and `occurred` being set to 0. * @return true on success and false otherwise */ - virtual bool Wait(std::chrono::milliseconds timeout, Event requested) const; + virtual bool Wait(std::chrono::milliseconds timeout, + Event requested, + Event* occurred = nullptr) const; private: /** |