<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/arti-rpc-client-core/src/ffi.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-27T13:45:12Z</updated>
<entry>
<title>rpclib, ffi: Allow simultaneous calls to `arti_rpc_handle_wait()`</title>
<updated>2024-08-27T13:45:12Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-08-22T15:21:48Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=76e6a24759b5fc1a04b53077acb19afb82c8df88'/>
<id>urn:sha1:76e6a24759b5fc1a04b53077acb19afb82c8df88</id>
<content type='text'>
Its underlying function previously took `&amp;mut RpcHandle`,
which was an accident waiting to happen.  Now it takes `&amp;RpcHandle`
and includes a Mutex to prevent multiple threads from waiting for
updates on the same request ID at once.

As an alternative, we *could* try to update connimpl::Receiver to
allow multiple simultaneous listeners on the same request ID.
But that would (I think) require a lot more bookkeeping, and thus
would be a bit more error-prone.

Closes #1532.
</content>
</entry>
<entry>
<title>ffi: Add support for request handles</title>
<updated>2024-08-12T18:35:09Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-08-06T15:57:54Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=2364c6dc6d2fd16f08641a1fed2cbc970005dc66'/>
<id>urn:sha1:2364c6dc6d2fd16f08641a1fed2cbc970005dc66</id>
<content type='text'>
This API allows the caller to launch a request and then watch for
updates on it.
</content>
</entry>
<entry>
<title>ffi: New out_val_opt type for outptrs to non-pointers</title>
<updated>2024-08-12T18:34:12Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-08-06T15:11:47Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=8cd3d9520963d5b01fda67330f8960e7822faf4e'/>
<id>urn:sha1:8cd3d9520963d5b01fda67330f8960e7822faf4e</id>
<content type='text'>
Previously, we had out_ptr_opt for functions that wanted to return a
newly allocated `ArtiRpcFoo` via a `struct ArtiRpcFoo **` argument.

But we didn't have a way to return non-allocated `int` via an `int
*` argument.  This code provides that.
</content>
</entry>
<entry>
<title>FFI: Expose the object ID for the session.</title>
<updated>2024-08-06T18:45:49Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-08-06T18:02:14Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=d5a996f5319c2b7ffb3d0673aa266ede549da0c1'/>
<id>urn:sha1:d5a996f5319c2b7ffb3d0673aa266ede549da0c1</id>
<content type='text'>
(Without this, it isn't actually possible to use the RPC subsystem.)
</content>
</entry>
<entry>
<title>ffi: Add some explicit ()s to prove they are there.</title>
<updated>2024-07-31T17:54:16Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-07-31T17:25:29Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=c4f8b574cfe7c35db3cc074fec59937b051b9c93'/>
<id>urn:sha1:c4f8b574cfe7c35db3cc074fec59937b051b9c93</id>
<content type='text'>
</content>
</entry>
<entry>
<title>ffi: Document safety for each function using ffi_body_raw.</title>
<updated>2024-07-31T17:54:16Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-07-31T13:00:04Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=6961e83f6ecbd975d7ed3610d6170a76240cac1a'/>
<id>urn:sha1:6961e83f6ecbd975d7ed3610d6170a76240cac1a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>ffi: rename ffi_body_simple to ffi_body_raw</title>
<updated>2024-07-31T17:54:16Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-07-31T12:50:29Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=5cdfa510127ea53126b1398f44e26b2fd540326f'/>
<id>urn:sha1:5cdfa510127ea53126b1398f44e26b2fd540326f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>ffi: use void to omit unreachable "on invalid" blocks</title>
<updated>2024-07-31T17:54:16Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-07-30T21:06:30Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=9c4c9e72d4cc76d58c577d15dbaea67507b108f3'/>
<id>urn:sha1:9c4c9e72d4cc76d58c577d15dbaea67507b108f3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>ffi: Remove all non-opt conversions</title>
<updated>2024-07-31T17:54:16Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-07-30T20:40:22Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=fa70f79c0b2e930077896272dde44a2e15a989fa'/>
<id>urn:sha1:fa70f79c0b2e930077896272dde44a2e15a989fa</id>
<content type='text'>
Additionally, inline the related conversion functions.

This should reduce the total amount of unsafe code that somebody
would need to look at.
</content>
</entry>
<entry>
<title>ffi: Always abort on panic.</title>
<updated>2024-07-31T17:54:16Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-07-29T17:36:19Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=a968848d576f5bf9ae0a1624ff1bd07d01060e14'/>
<id>urn:sha1:a968848d576f5bf9ae0a1624ff1bd07d01060e14</id>
<content type='text'>
</content>
</entry>
</feed>
