Odpověď na názor

Odpovídáte na názor ke článku Automatická správa paměti deterministicky.

  • 29. 9. 2011 14:16

    ondra.novacisko.cz (neregistrovaný)

    Jinak kromě RC použivám ke sdílení pointerů ještě kruhový seznam, kdy se pointery propojí do kruhu. Každá kopie pointeru přidá sám sebe do spojového seznamu. Kruh je jednosměrně orientovaný.

    Výhody: Objekt na to nemusí být připraven, Ukazatel nemusí alokovat counter. Chytrý ukazatel zabere pouze 2x více než normální ukazatel, snadná implementace přesměrování, kdy mohu změnit adresu u všech ukazatelů současně. Hodí se i na sdílení různých neukazujících objektů. jako třeba souborové deskriptory, handly oken a podobně.

    Nevýhody: Pomalé odebírání ukazatelů, pokud je jich hodně (musí se oběhnout kruh), prakticky neřešitelný MT Safe sdílení.

    Vemli často to používám na obyčejné přenášení pointerů ve výsledku funkce abych měl jistotu, že si pointer někdo vyzvedl.