# Meeting 2022-11-01 ## Leftover discussion on RCU field projection: ```rust= fn writer(data: &RcuLock<Mutex<Test>>) { let mut guard = data.lock(); // guard does not give `&mut Test`! // Use projection to get a mutable reference *project!(&mut guard => b) = 10; let _: &Rcu = project!(&mut guard => a); // This will only give an immutable reference let _: &Rcu = project!(&*data => a); // Still able to get an immutable reference while mutex is locked. drop(guard); // Read can be done directly pr_info!("Value: {}\n", data.lock().b); } ``` Boqun: Maybe change the grammer to `project!(&mut guard->b)`? Benno: Doesn't work with a declarative macro. We could use a proc-macro (without syn) however. Gary: If we have postfix macro this could look like `(&mut guard).proj!(a)`. ## Misc discussion Miguel: https://lore.kernel.org/lkml/CANiq72nfpdhPgEgWbz2T7C3GOk94mPbcqfvXTp3Lp=qRvtON9g@mail.gmail.com