<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-rtcompat/src/impls/async_std.rs, branch arti-v1.7.0</title>
<subtitle>mirror of https://gitlab.torproject.org/tpo/core/arti
</subtitle>
<id>http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.7.0</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.7.0'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2025-08-05T06:10:18Z</updated>
<entry>
<title>Fix Windows compile warnings</title>
<updated>2025-08-05T06:10:18Z</updated>
<author>
<name>Tobias Stoeckmann</name>
<email>tobias@stoeckmann.org</email>
</author>
<published>2025-08-03T08:44:23Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=1623fd32272131c911ff53e8a2ea7b2516ffab07'/>
<id>urn:sha1:1623fd32272131c911ff53e8a2ea7b2516ffab07</id>
<content type='text'>
Use unix-specific crates only if needed and suppress clippy warnings of
unused variables if their usage is unix-specific.
</content>
</entry>
<entry>
<title>AF_UNIX terminology: Rename two error structs</title>
<updated>2025-03-24T13:58:54Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2025-03-06T15:52:03Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=73157920ffa84d6f1580170a0e40e5fbe3106a67'/>
<id>urn:sha1:73157920ffa84d6f1580170a0e40e5fbe3106a67</id>
<content type='text'>
We change `NoUnixAddressSupport` to `NoAfUnixSocketSupport` because it
doesn't make much sense to talk about support for the addresses
separately from support for the sockets.
</content>
</entry>
<entry>
<title>tor-rtcompat: Rename spawn_thread to spawn_blocking</title>
<updated>2025-03-04T17:33:25Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2025-03-04T15:39:48Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=11049b07c419fc7544c382a98ea8366d6b468daf'/>
<id>urn:sha1:11049b07c419fc7544c382a98ea8366d6b468daf</id>
<content type='text'>
Let's use Tokio terminology here.
</content>
</entry>
<entry>
<title>tor-rtcompat: Provide a new function for executor re-entry</title>
<updated>2025-03-04T17:30:43Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2025-02-26T16:03:43Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=878c32bc1e9027fa3cf405c87f5323b94969b0fb'/>
<id>urn:sha1:878c32bc1e9027fa3cf405c87f5323b94969b0fb</id>
<content type='text'>
Forbid re-entering the executor using ToplevelBlockOn::block_on.

This was always forbidden in the case of MockExecutor, but that meant
that tests using MockExecutor would malfunction if the code under test
needed to re-enter the executor from sync code (since the code under test
would have to use block_on, which wrong).  See #1835.

Provide a function which *can* do this, reenter_block_on.  The
MockExecutor needs to know the difference, and other runtimes may too.
They are conceptually quite different operations.

Introduce ToplevelRuntime as a convenience alias.
</content>
</entry>
<entry>
<title>tor-rtcompat: New plan for blocking interaction, Blocking trait</title>
<updated>2025-03-04T17:30:43Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2025-02-25T14:10:35Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=20eabfcc81a2d0df61ce297b28c7412c3ceab7fd'/>
<id>urn:sha1:20eabfcc81a2d0df61ce297b28c7412c3ceab7fd</id>
<content type='text'>
* Document the new plan for blocking interaction in the trait-level
  docs for the Blocking trait (used to be SpawnBlocking).
  Add cross-references (in some cases to not-yet-existing pieces).

* Rename: spawn_blocking to spawn_thread.  We're going to distinguish
  thread-creation (relatively expensive) from brief entry to sync code
  (relatively cheap, but more restricted).

* Rename the SpawnBlocking trait to Blocking, and its ThreadHandle
  to ThreadHandle.  This trait is going to gain more functionality.

* Add the missing mention of `Blocking` to the docs for `Runtime`.
</content>
</entry>
<entry>
<title>tor-rtcompat: Rename BlockOn to ToplevelBlockOn</title>
<updated>2025-03-04T17:30:43Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2025-02-13T17:39:39Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=849558047071897b9bbdbdd28d06d15b52b3af10'/>
<id>urn:sha1:849558047071897b9bbdbdd28d06d15b52b3af10</id>
<content type='text'>
We're going to distinguish top-level runtime entry, from *re*-entry to
an existing executor.  It is most convenient to rename this trait
first.  Documentation of the distinction will come later.

(We're going to retain the function name `block_on`, but we want the trait
to be more obviously a top-level only thing, though, so we give it a
name that will hopefully avoid it peroulating throughout the codebase..)
</content>
</entry>
<entry>
<title>tor-rtcompat: Implement new_handle() using TcpSockFd.</title>
<updated>2025-01-15T13:49:17Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-01-08T19:35:08Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=f70ef5e04483c2d41f2efd98c9854e6447654bc6'/>
<id>urn:sha1:f70ef5e04483c2d41f2efd98c9854e6447654bc6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-rtcompat: Add the ability to get a StreamOps handle.</title>
<updated>2025-01-15T13:49:17Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-01-08T11:06:59Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=267235969df65d975b5deb01c342e1073d4c3847'/>
<id>urn:sha1:267235969df65d975b5deb01c342e1073d4c3847</id>
<content type='text'>
Needed for cases where we wrap an object that implements `StreamOps` in
an external type, thereby losing access to the `StreamOps`
functionality. For example, during the channel handshake, we `.split()`
the stream that implements `StreamOps`, which leaves us with a
`SplitSink` and a `SplitStream`, neither of which implement `StreamOps`.
Getting a handle to the underlying object that implements `StreamOps`
(for example, a file handle) *before* the stream is `.split()` enables
us to use `StreamOps` to manipulate the underlying split stream.

This commit also introduces a special `UnsupportedStreamOpsHandle`,
which is a type that implements `StreamOps`, but always returns an
error. This type is meant to simplify error handling and usage, and is
meant to be used in cases where `StreamOps` is not supported. TODO: the
name of this type is pretty confusing (it's very similar to
`UnsupportedStreamOp`, which is an error type), and should probably be
renamed to something else (`NoOpStreamOpsHandle`,
`BrokenStreamOpsHandle`, `DummyStreamOpsHandle` come to mind...).

Note: this changes the `StreamOps` trait to be slightly different from
what I originally envisioned in !2660 and #1769
</content>
</entry>
<entry>
<title>tor-rtcompat: Use GAT instead of RPIT in SpawnBlocking trait.</title>
<updated>2025-01-07T18:27:14Z</updated>
<author>
<name>Wesley Aptekar-Cassels</name>
<email>me@wesleyac.com</email>
</author>
<published>2024-12-19T19:30:29Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=665d3145a0db86bd1fbd7549b64e21a160c45ff1'/>
<id>urn:sha1:665d3145a0db86bd1fbd7549b64e21a160c45ff1</id>
<content type='text'>
Due to the limitations on RPIT, it's better to use a GAT for now.
</content>
</entry>
<entry>
<title>tor-rtcompat: Add spawn_blocking to Runtime trait.</title>
<updated>2025-01-07T18:26:28Z</updated>
<author>
<name>Wesley Aptekar-Cassels</name>
<email>me@wesleyac.com</email>
</author>
<published>2024-12-18T20:57:30Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=5f91a2b5fa6f343a51cc325ee7a9519f7523d14c'/>
<id>urn:sha1:5f91a2b5fa6f343a51cc325ee7a9519f7523d14c</id>
<content type='text'>
This adds a new SpawnBlocking trait, which exposes the spawn_blocking
function that tokio, async-std, and other runtimes have.
</content>
</entry>
</feed>
