<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-proto/src/circuit/reactor.rs, branch arti-v1.2.6</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.6</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.2.6'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2024-07-29T16:15:06Z</updated>
<entry>
<title>circuit reactor: add comment pointing to tests in other module</title>
<updated>2024-07-29T16:15:06Z</updated>
<author>
<name>Jim Newsome</name>
<email>jnewsome@torproject.org</email>
</author>
<published>2024-07-25T19:19:27Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=f8a0bf416604f441537ffae972a8e0dee5cc2ca9'/>
<id>urn:sha1:f8a0bf416604f441537ffae972a8e0dee5cc2ca9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix two TODO ticket numbers</title>
<updated>2024-06-25T10:56:14Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2024-06-25T10:56:14Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=462f180cebca3aa0f3fdfd96ad5c63a352242510'/>
<id>urn:sha1:462f180cebca3aa0f3fdfd96ad5c63a352242510</id>
<content type='text'>
I seem to have mistyped this ticket number.  We meant #1397
aka "Circuit reactor isn't great", not some release ticket.
</content>
</entry>
<entry>
<title>Merge branch 'sometimes-unbounded' into 'main'</title>
<updated>2024-06-11T20:35:38Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-06-11T20:35:38Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=0a04f20f74211f20a37df28995c8ac0fdce97246'/>
<id>urn:sha1:0a04f20f74211f20a37df28995c8ac0fdce97246</id>
<content type='text'>
RFC: Provide and use SometimesUnboundedSender in circuit reactor

See merge request tpo/core/arti!2172</content>
</entry>
<entry>
<title>Merge branch 'poll-ready-unpin-bool' into 'main'</title>
<updated>2024-05-29T18:05:57Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-05-29T18:05:57Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=5bbed90af7b9c5fc35da550089d99ad8cea49763'/>
<id>urn:sha1:5bbed90af7b9c5fc35da550089d99ad8cea49763</id>
<content type='text'>
Tidy up the ChannelSender::poll_ready inherent method

See merge request tpo/core/arti!2171</content>
</entry>
<entry>
<title>Use SometimesUnboundedSink for the circuit reactor's bag-on-the-side</title>
<updated>2024-05-29T13:15:25Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2024-05-29T09:06:25Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=6f16899febc8321938b11908a200b94adbf069d6'/>
<id>urn:sha1:6f16899febc8321938b11908a200b94adbf069d6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>proto: Make DataWriter::close actually do something.</title>
<updated>2024-05-29T11:28:01Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-05-28T16:30:09Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=6739f33781b957da7cb00128ba2eadc92dbabf72'/>
<id>urn:sha1:6739f33781b957da7cb00128ba2eadc92dbabf72</id>
<content type='text'>
Previously we had a bug where `&lt;DataWriter as AsyncWrite&gt;::close`
(or `shutdown` in tokio-land) would not actually have any effect.
It _would_ drop the `StreamTarget` held by the `DataWriter`, but
since the `DataReader` also held a `StreamTarget`, the
MPSC channel would not get closed, and the circuit reactor would
not realize that the stream wanted to shut down.

Now we use `mpsc::Sender::close_channel` to make our closes
effectual.

Closes #1368.

Additionally, we fix a bug where `poll_close()` never actually did
anything if the buffer had nothing in it when it was called.
Previously, `poll_flush_impl()` would exit immediately if it had no
data to flush.  That isn't what we want when we are closing!
</content>
</entry>
<entry>
<title>ChannelSender::poll_ready_unpin_bool: move to util</title>
<updated>2024-05-29T11:16:19Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2024-05-29T11:15:39Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=237eb7a53f8953b8b6697ff110e1aec686b19d50'/>
<id>urn:sha1:237eb7a53f8953b8b6697ff110e1aec686b19d50</id>
<content type='text'>
This is where it belongs.
</content>
</entry>
<entry>
<title>ChannelSender::poll_ready_unpin_bool: extension trait</title>
<updated>2024-05-29T11:16:15Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2024-05-29T11:15:08Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=e0115adb172001a84867e98520341a0ad1b96628'/>
<id>urn:sha1:e0115adb172001a84867e98520341a0ad1b96628</id>
<content type='text'>
This makes this available for any Sink + Unpin.  Which we want because
we're about to wrap our ChannelSender in a Sink wrapper.

It's in the wrong place now; we'll move it in a moment.
</content>
</entry>
<entry>
<title>ChannelSender::poll_ready_unpin_bool: rename from poll_ready</title>
<updated>2024-05-29T11:15:53Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2024-05-29T10:00:44Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=ca05a4dcb9979c6916cd1f0d7ccc74af433969e0'/>
<id>urn:sha1:ca05a4dcb9979c6916cd1f0d7ccc74af433969e0</id>
<content type='text'>
This would otherwise shadow the poll_ready method, which is
confusing.

Also this paves the way for making it available for any
Sink + Unpin.

Improve the docs somewhat to explain what this thing actually is.
</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>
</feed>
