<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-rtcompat/src/lib.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:30:43Z</updated>
<entry>
<title>tor-rt*: Apply deferred formatting churn</title>
<updated>2025-03-04T17:30:43Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2025-02-26T18:13:00Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=39409be0db4def9ca5ffbd3bd14766112bcab527'/>
<id>urn:sha1:39409be0db4def9ca5ffbd3bd14766112bcab527</id>
<content type='text'>
rustfmt.
</content>
</entry>
<entry>
<title>tor-rtcompat: Remove ToplevelBlockon from Runtime</title>
<updated>2025-03-04T17:30:43Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2025-02-26T15:30:53Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=5618b0367a5eb25c03f71a36b9ef625cdfa08be1'/>
<id>urn:sha1:5618b0367a5eb25c03f71a36b9ef625cdfa08be1</id>
<content type='text'>
Introduce ToplevelRuntime as an alias, and use it in the top-level
programs.

Now none of the principal protocol implementation code has access to
the executor's toplevel entrypoint, and can't call it by mistake.
</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: Rename UnsupportedStreamOps to NoOpStreamOpsHandle (fmt).</title>
<updated>2025-01-15T13:49:17Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-01-13T11:49:37Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=dc4fe47d5388074352ac00b561bed978779446e0'/>
<id>urn:sha1:dc4fe47d5388074352ac00b561bed978779446e0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-rtcompat: Rename UnsupportedStreamOps to NoOpStreamOpsHandle.</title>
<updated>2025-01-15T13:49:17Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-01-13T11:48:16Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=4ec53ca4dea324c2c170885d8556a67c802e491d'/>
<id>urn:sha1:4ec53ca4dea324c2c170885d8556a67c802e491d</id>
<content type='text'>
This renames UnsupportedStreamOpsHandle to NoOpStreamOpsHandle for
clarity (the old name kind of sounded like the name of an error type).
</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 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>clippy: deny `mod_module_files`</title>
<updated>2025-01-06T23:09:41Z</updated>
<author>
<name>Steven Engler</name>
<email>opara@torproject.org</email>
</author>
<published>2025-01-06T23:02:49Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=252a3a803b2db65792db5bd51dee8950d8557e0d'/>
<id>urn:sha1:252a3a803b2db65792db5bd51dee8950d8557e0d</id>
<content type='text'>
Denies 'mod.rs' files for consistency.

https://rust-lang.github.io/rust-clippy/master/index.html#mod_module_files
</content>
</entry>
</feed>
