LINUX.ORG.RU

История изменений

Исправление kirk_johnson, (текущая версия) :

Нет, лол. Рефкаунтинг в C выглядит так:


struct some_stuff *st = make_new_stuff(...);

...

kref_get(&st->ref); /* ref == 2 */

...

kref_put(&st->ref, st_remove_this_shit); /* ref == 1 */

...

kref_put(&st->ref, st_remove_this_shit); /* st_remove_this_shit called */ 

Это тот же malloc/free, просто на стероидах.

Исходная версия kirk_johnson, :

Нет, лол. Рефкаунтинг в C выглядит так:


struct some_stuff *st = make_new_stuff(...);

...

kref_put(&st->ref, st_remove_this_shit);

...

Это тот же malloc/free, просто на стероидах.