<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-rtcompat/src/opaque.rs, branch arti-v1.4.2</title>
<subtitle>mirror of https://gitlab.torproject.org/tpo/core/arti
</subtitle>
<id>http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.4.2</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.4.2'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2025-03-04T17:33:25Z</updated>
<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: Big invasive change adding StreamOps bound everywhere.</title>
<updated>2025-01-15T13:49:17Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-01-08T19:08:57Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=f04709c16d0ebf039779c404cf0c907f13965852'/>
<id>urn:sha1:f04709c16d0ebf039779c404cf0c907f13965852</id>
<content type='text'>
This is unfortunately necessary, because after the channel handshake, we
need to give the channel reactor a `StreamOps` handle to the underlying
stream.
</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>
<entry>
<title>Remove re-export of "unix" from tor_rtcompat.</title>
<updated>2024-10-29T17:36:16Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-10-29T17:36:16Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=7ddd8bacdfbd91356805a37e15c023e3b525b6e8'/>
<id>urn:sha1:7ddd8bacdfbd91356805a37e15c023e3b525b6e8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Make Runtime require NetStreamProvider&lt;unix::SocketAddr&gt;</title>
<updated>2024-09-24T13:10:11Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-09-22T19:17:14Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=7a56ae00ffb6e45783b0eb837098ea894ade5861'/>
<id>urn:sha1:7a56ae00ffb6e45783b0eb837098ea894ade5861</id>
<content type='text'>
</content>
</entry>
<entry>
<title>rtcompat: Rename TcpProvider to NetStreamProvider.</title>
<updated>2024-09-24T13:10:11Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-09-19T11:55:22Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=8c2d84000e4d5ba74e7b6b4e9dac3fc700f618b5'/>
<id>urn:sha1:8c2d84000e4d5ba74e7b6b4e9dac3fc700f618b5</id>
<content type='text'>
(And similarly rename TcpListener to NetStreamListener,
along with their TcpStream/TcpListener associated types.)

These types are about to become generic over addresses,
and therefore shouldn't be named after TCP.

Renaming was done mostly with Rust Analyzer,
except for some macros that needed to be hand-edited.

(I'll revise the comments in the next commit;
this one is all about renaming.)
</content>
</entry>
</feed>
