<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-chanmgr/src, 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>Merge branch 'chan_arc' into 'main'</title>
<updated>2024-05-28T11:45:02Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-05-28T11:45:02Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=e53b2b507389c76a3aa38f3a4d8c51fb3f0e9462'/>
<id>urn:sha1:e53b2b507389c76a3aa38f3a4d8c51fb3f0e9462</id>
<content type='text'>
Proto: Refactor Channel to always be Arc.

See merge request tpo/core/arti!2163</content>
</entry>
<entry>
<title>chanmgr: Delegate to Channel::engage_padding_activities explicitly.</title>
<updated>2024-05-17T18:16:15Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-05-16T16:32:50Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=0b8347ac41d665d254b498e476cf5a5964cb60bb'/>
<id>urn:sha1:0b8347ac41d665d254b498e476cf5a5964cb60bb</id>
<content type='text'>
(This isn't a bugfix, but it helps avoid the appearance of a
function calling itself.  This _would_ become a bug if we imported
the wrong trait into scope here.)
</content>
</entry>
<entry>
<title>Make Channel non-Clone.</title>
<updated>2024-05-16T16:24:12Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-05-16T16:03:48Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=ca8d87d6cbeb76833930ae433e18310799e348a9'/>
<id>urn:sha1:ca8d87d6cbeb76833930ae433e18310799e348a9</id>
<content type='text'>
</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>Re-run maint/add_warning.</title>
<updated>2024-05-06T13:31:35Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-05-06T13:23:41Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=97f452ec9958bf7d8ca3275c39655814a4494637'/>
<id>urn:sha1:97f452ec9958bf7d8ca3275c39655814a4494637</id>
<content type='text'>
This commit is automatically generated.
</content>
</entry>
<entry>
<title>Run maint/add_warning.</title>
<updated>2024-03-13T16:30:53Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-03-13T16:30:53Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=c0c9bd15d42897825dd0ab3d3b8dd1c17bd6320c'/>
<id>urn:sha1:c0c9bd15d42897825dd0ab3d3b8dd1c17bd6320c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>deny clippy::unchecked_duration_subtraction</title>
<updated>2024-02-29T17:16:49Z</updated>
<author>
<name>trinity-1686a</name>
<email>trinity@deuxfleurs.fr</email>
</author>
<published>2024-02-29T17:06:46Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=ac5b36027ca825d27ef466501c660ce498fd9e3c'/>
<id>urn:sha1:ac5b36027ca825d27ef466501c660ce498fd9e3c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>educe: Use std's default for enums where default variant is unit</title>
<updated>2024-02-12T11:38:36Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2024-02-12T11:07:42Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=c35c60f848154e80f23ba95a989ff2f9d2594e6a'/>
<id>urn:sha1:c35c60f848154e80f23ba95a989ff2f9d2594e6a</id>
<content type='text'>
Since Rust 1.66, std's default works properly for enums, provided that
the default variant is a unit.

Review all uses of `#[educe(default)]` on enums and replace them with
std where possible, which is most of them.

In 1.66 and later, std's `#[derive(Default)]` doesn't infer any
generic bounds on the derived impl, where it's an enum - since the
unit variant can always be constructed.  So this change doesn't add
any generic bounds and is not API-visible.
</content>
</entry>
<entry>
<title>ChannelState::ready_to_expire: return true when rem time is zero</title>
<updated>2023-12-14T01:12:10Z</updated>
<author>
<name>Jim Newsome</name>
<email>jnewsome@torproject.org</email>
</author>
<published>2023-12-14T01:00:37Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=197c5c8b804ed81c6081472ffea84c95a7f621a7'/>
<id>urn:sha1:197c5c8b804ed81c6081472ffea84c95a7f621a7</id>
<content type='text'>
This fixes a race condition that would normally be fairly benign -
it would result in scheduling to check for expired channels again
immediately, and assuming non-zero time passes would then remove the
channel.

In Shadow's default time model though, zero time passes in this case,
so we just keep scheduling to check again immediately forever; i.e.
deadlock.
</content>
</entry>
</feed>
