Avoiding deadlocks when using output.rs with a non-filesystem output

pmeunier
Apr 14, 2022, 11:30 AM
G55Y75FUL4LWA346HQCZ5EVA5G54EDTZAW7MPVTO44BP6D5UMURAC

Dependencies

  • [2] ZDK3GNDB Tag transactions (including a massive refactoring of errors)
  • [3] I24UEJQL Various post-fire fixes
  • [*] SXEYMYF7 Fixing the bad changes in history (unfortunately, by rebooting).

Change contents

  • replacement in libpijul/src/output/output.rs at line 640
    [2.26099][2.26099:26232]()
    let txn = txn.read();
    let channel = channel.read();
    let mut l = retrieve(&*txn, txn.graph(&*channel), output_item.pos)?;
    [2.26099]
    [2.26232]
    let mut l = {
    let txn = txn.read();
    let channel = channel.read();
    retrieve(&*txn, txn.graph(&*channel), output_item.pos)?
    };
  • replacement in libpijul/src/output/output.rs at line 649
    [2.26402][2.26402:26524]()
    alive::output_graph(changes, &*txn, &*channel, &mut f, &mut l, forward)
    .map_err(PristineOutputError::from)?;
    [2.26402]
    [2.26524]
    {
    let txn = txn.read();
    let channel = channel.read();
    alive::output_graph(changes, &*txn, &*channel, &mut f, &mut l, forward)
    .map_err(PristineOutputError::from)?;
    }