<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-proto/src/channel/reactor.rs, branch arti-v1.2.7</title>
<subtitle>mirror of https://gitlab.torproject.org/tpo/core/arti
</subtitle>
<id>http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.2.7</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.2.7'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2024-08-28T14:27:46Z</updated>
<entry>
<title>extract tor_async_utils::oneshot into ::oneshot-fused-workaround</title>
<updated>2024-08-28T14:27:46Z</updated>
<author>
<name>Jim Newsome</name>
<email>jnewsome@torproject.org</email>
</author>
<published>2024-08-22T19:20:36Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=46f7f01092e6ac55e3e958dc3a2228b1d36e26a1'/>
<id>urn:sha1:46f7f01092e6ac55e3e958dc3a2228b1d36e26a1</id>
<content type='text'>
Having this in the `tor-async-utils` crate prevents us from doing both
of the following without introducing a circular dependency:

* using it in `tor-rtmock` (which we currently do, particularly in
  tests).
* using `tor-rtmock` to test things in `tor-async-utils`. We don't do
  this yet, but it is generally sensible to do so. In particular we
  want to move the `stream_peak` module there, which is currently tested
  with `tor-rtmock`.

Moving this into its own crate avoids this circular dependency.
</content>
</entry>
<entry>
<title>proto: Divide up some elements of ChannelDetails.</title>
<updated>2024-05-16T16:24:12Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-05-16T16:15:17Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=98dc42c3e0a4cfa9f5663b01ff27d085e725ca57'/>
<id>urn:sha1:98dc42c3e0a4cfa9f5663b01ff27d085e725ca57</id>
<content type='text'>
Previously ChannelDetails had a double duty: It held elements shared
among the clones of a Channel, and it also held elements shared
between the Channel and the Reactor.  But now that Channel doesn't
have to implement Clone, we can more the non-Reactor elements into
Channel itself.

This change may improve cache locality a bit, and should make it a
little easier to follow the channel code.

I've also moved unique_id out of ChannelDetails into Channel _and_
Reactor: it is small, immutable, and used all the time in logging.
</content>
</entry>
<entry>
<title>proto: Make Channel explicitly Arc&lt;.&gt;</title>
<updated>2024-05-16T16:24:12Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-05-16T15:51:41Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=822ff7b1ba21ed59b697aab45fd0b00f88479cef'/>
<id>urn:sha1:822ff7b1ba21ed59b697aab45fd0b00f88479cef</id>
<content type='text'>
Previously, Channel was a type that you could Clone that implicitly
its state.  Now, Channel always appears as an Arc&lt;Channel&gt;.

This change has several benefits:

  * It makes the relationship between Channel struct and the
    underlying channel more clear.
  * It enables Channel to participate in the RPC system,
    where everything has to be an Arc&lt;.&gt;
  * It enables us to have a Weak&lt;Channel&gt;, if we ever want to.
  * It will let us move various members out of ChannelDetails.

We did this change a while ago with ClientCirc.
</content>
</entry>
<entry>
<title>Downgrade some messages to trace</title>
<updated>2023-11-29T18:51:30Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2023-11-29T18:44:06Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=d67519d71b2f452dcc947acc12b3bdc50e3e7920'/>
<id>urn:sha1:d67519d71b2f452dcc947acc12b3bdc50e3e7920</id>
<content type='text'>
These messages are very verbose and I doubt anyone will want them,
usually, even when debugging.
</content>
</entry>
<entry>
<title>Change `CircId` to never be zero</title>
<updated>2023-10-25T20:35:12Z</updated>
<author>
<name>Jim Newsome</name>
<email>jnewsome@torproject.org</email>
</author>
<published>2023-10-24T18:47:06Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=3fba6685fec3437f4afa3b3e8f94b6448117e73e'/>
<id>urn:sha1:3fba6685fec3437f4afa3b3e8f94b6448117e73e</id>
<content type='text'>
This changes the internal representation to be `NonZeroU32` instead of
just `u32`.

Various places where a circuit ID is optional now use `Option&lt;CircId&gt;`.

Fixes a bug in `CircIdRange::sample` that would previously return a
circuit ID of 0, when the rng returned 0x8000_0000 for a low range.
</content>
</entry>
<entry>
<title>oneshot: Use veneer in tor-proto</title>
<updated>2023-10-11T15:19:21Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2023-10-11T14:03:27Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=f185eee7ddd0df75d98b03e64e74dd9235b6d1f4'/>
<id>urn:sha1:f185eee7ddd0df75d98b03e64e74dd9235b6d1f4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>proto: methods to wait until a channel/circuit is shut down.</title>
<updated>2023-08-04T17:37:28Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2023-08-04T17:32:17Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=64fca7e45fcca858689b4111e9cfce3a5e90eade'/>
<id>urn:sha1:64fca7e45fcca858689b4111e9cfce3a5e90eade</id>
<content type='text'>
The implementation here is perhaps excessively simple: we put
a `oneshot::Sender` in the `Reactor` object, and a
`Shared&lt;oneshot::Receiver&gt;` in the circuit or channel.  When
the reactor is dropped, any copy of the `Shared&lt;Receiver&gt;` will
yield `Err(Cancelled)`.

I'm marking these methods as experimental because I'm not sure I've
thought of all the implications here, and we might want to change
things around.

Down the road, these methods might want to yield a `Result&lt;&gt;`
indicating why the reactor was shut down.

This feature was inspired by a request from Saksham Mittal, and a
felt need while working on !1472.
</content>
</entry>
<entry>
<title>async-utils: rename SinkExt to SinkPrepareExt</title>
<updated>2023-04-19T16:38:26Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2023-04-18T19:05:26Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=5cd5e6a3f8431eab20e43fcdaa4e93d9afc9b729'/>
<id>urn:sha1:5cd5e6a3f8431eab20e43fcdaa4e93d9afc9b729</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Move functionality from tor_basic_utils to tor_async_utils</title>
<updated>2023-03-29T17:57:11Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2023-03-29T13:17:13Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=a62affd66e34e98035bd14cb67b355065598a2d7'/>
<id>urn:sha1:a62affd66e34e98035bd14cb67b355065598a2d7</id>
<content type='text'>
This commit is mostly code movement; I'd recommend reviewing it
with git's `--color-moved` option.
</content>
</entry>
<entry>
<title>Rename OpenClientChan{Msg,Cell} =&gt; OpenChan{Msg,Cell}S2C</title>
<updated>2023-02-09T15:20:31Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2023-02-09T15:10:17Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=0d772e5bede71c389b7eee58ce1b12c8651cba0f'/>
<id>urn:sha1:0d772e5bede71c389b7eee58ce1b12c8651cba0f</id>
<content type='text'>
</content>
</entry>
</feed>
