Arc

Arc<T> permite acesso somente-leitura compartilhado por meio de Arc::clone:

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Speaker Notes

This slide should take about 5 minutes.
  • Arc significa “Atomic Reference Counted”, uma versĂŁo thread-safe de Rc que usa operaçÔes atĂŽmicas.
  • Arc<T> implementa Clone quer T o faça ou nĂŁo. Ele implementa Send e Sync se e somente se T implementa os dois.
  • Arc::clone() tem o custo das operaçÔes atĂŽmicas que sĂŁo executadas, mas depois disso o uso do T Ă© gratuito.
  • Cuidado com os ciclos de referĂȘncia, Arc nĂŁo usa um coletor de lixo para detectĂĄ-los.
    • std::sync::Weak pode ajudar.