14
submitted 2 weeks ago by Cpo@lemm.ee to c/rust@programming.dev

In order to share the running transaction into a DAO style data management class, I have wrapped the transaction in an Arc and pass it into the DAO.

The issue is, once the transaction is in there I cannot call commit() on it because it cannot be moved out of the Arc anymore, as the commit requires a mut self.

Any ideas on how to work around this?

you are viewing a single comment's thread
view the rest of the comments
[-] nrab@sh.itjust.works 5 points 2 weeks ago

Make sure there’s only one strong reference and call Arc::into_inner to move it out of the Arc. Same can be done with Mutex::into_inner to move the transaction out of the mutex

[-] Cpo@lemm.ee 1 points 2 weeks ago

Thanks! Will try that!

this post was submitted on 10 Nov 2024
14 points (93.8% liked)

Rust

6041 readers
5 users here now

Welcome to the Rust community! This is a place to discuss about the Rust programming language.

Wormhole

!performance@programming.dev

Credits

  • The icon is a modified version of the official rust logo (changing the colors to a gradient and black background)

founded 1 year ago
MODERATORS