| Commit message (Collapse) | Author | Age | Files | Lines |
| |\
| |
| |
| |
| |
| |
| | |
Removed unnecessary lint
Closes #2556
See merge request tpo/core/arti!4210
|
| | | |
|
| | |
| |
| |
| | |
Removed unnecessary lint
|
| |/ |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This commit executes maint/add_warning with the just added change to
deny string slices except in tests.
I recommend auditing this by checking out the previous commit followed
by running the script yourself and then verifying that the diff is
identical to this commit.
This commit makes cargo clippy fail. We will add exceptions in the next
commit.
|
| |
|
|
|
|
|
|
|
|
|
| |
When the circ-padding feature is enabled, we use maybenot, which does
not yet support rand 0.10. In the meantime, enabling this feature pulls
in rand 0.9. This is not ideal, but should be okay as a temporary
situation.
This also replaces the use of ReseedingRng (which was removed in 0.10)
with the reseeding_rng crate. This is somewhat less performant, but it
should be okay.
|
| | |
|
| |
|
|
|
|
|
| |
Since we renamed PollingStream and NonblockingStream to
BlockingConnection and NonblockingConnection, it no longer makes
sense to refer to them as streams, or put them in variables called
"stream".
|
| | |
|
| |
|
|
|
|
|
|
| |
This commit is almost entirely code movement; it's probably best to review
this one with --color-moved.
I've had to make a field (temporarily) pub(super). The next commit
will fix that.
|
| |
|
|
|
| |
Since we are no longer calling these types "streams" I've decided to
revert to the old name for this module.
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
Typos found with codespell
|
| | |
|
| |
|
|
|
| |
This commit adds FFI wrappers for the "poll" API, which lets the
user integrate with a poll(2)-style event loop.
|
| |
|
|
|
|
| |
This commit adds wrappers for the "submit/wait" methods on RpcConn
(which are used to submit tagged requests,
and then wait for responses to all tagged requests at once).
|
| |\
| |
| |
| |
| | |
Fix various typos
See merge request tpo/core/arti!3781
|
| | | |
|
| |\ \
| | |
| | |
| | |
| | |
| | |
| | | |
RPC: Provide superuser mode
Closes #2285
See merge request tpo/core/arti!3743
|
| | |/ |
|
| |/
|
|
| |
Fix a typo in use-statement for windows.
|
| |
|
|
|
| |
Without this, the poll() method wouldn't actually perform as
advertised.
|
| |\
| |
| |
| |
| | |
rpc: API for event-driven IO.
See merge request tpo/core/arti!3652
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| |
| | |
rustfmt doesn't like to touch things inside macros. These were
misformatted as a result, with long lines and in one case a missing
space.
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Per discussion, it makes more sense to have the API be one
that gets called when our IO interests change.
Additionally, this commit removes the try_reading and try_writing
booleans, as previously discussed.
I've left a couple of XXXX comments where more documentation or
thought is likely needed.
|
| | |
| |
| |
| |
| |
| |
| | |
This API provides the necessary functionality to use an RpcConn
inside a poll-like event loop.
This is part of #1856.
|
| | | |
|
| | | |
|
| | |
| |
| | |
(from Diziet)
|
| | | |
|
| | |
| |
| |
| | |
This is based on a pad with input from nickm and Diziet
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This commit finally adds a `RpcConn::submit()` method to send a
request without having to wait on it specifically, and an
`RpcConn::wait()` method to wait for the next response from _any_
such request.
Thanks to the previous patches, this is relatively simple!
This is part of #1856.
|
| | |
| |
| |
| |
| |
| | |
In order to implement tagged pollable requests, we need a separate
response queue for them, and we need to dispatch requests to that
queue as appropriate.
|
| | |
| |
| |
| |
| |
| |
| | |
For pollable requests, we'll want to associate each one with a tag.
But we'd rather not carry tags around for _every_ pending request:
it would waste space and lead to possible errors. So instead we
add a Tag type as a member of QueueId.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In order to implement this part of #1856, we will internally divide
requests into two kinds: "Waitable" and "Pollable". Waitable
requests are the kind that we have now: They are created with an
"execute" method. They each have their own response queue and their
own condvar, and in order to see if they have any responses, the
caller needs to call some kind of request-specific method.
Pollable requests are the ones we will add. They are created with a
"submit" method, and associated with a user-provided tag.
They all share the same queue and the same condvar.
To see if any of them have a response, the caller will run a
function that returns tagged responses.
In order to support this division, this commit:
- turns `RequestState` into an enum,
- makes `ResponseQueue` into its own type,
- Adds a trait that will be implemented by every type that can
identify a response queue.
|
| |/ |
|
| |\
| |
| |
| |
| |
| |
| | |
Use ErrorSources where appropriate to walk an error stack.
Closes #2338
See merge request tpo/core/arti!3685
|
| | | |
|
| |/
|
|
|
|
|
|
|
| |
`clippy::collapsible_if` started triggering after bumping the MSRV to
1.88.
Since this triggers from a lot of places, and since there even are a
couple of instances where we explicitly allow `clippy::collapsible_ifs`,
I've opened #2342 for deciding what to do about it.
|
| | |
|