52 typedef void (*R_CFinalizer_t)(
SEXP);
53 void R_RegisterFinalizer(
SEXP s,
SEXP fun);
54 void R_RegisterCFinalizer(
SEXP s, R_CFinalizer_t fun);
55 void R_RegisterFinalizerEx(
SEXP s,
SEXP fun, Rboolean onexit);
56 void R_RegisterCFinalizerEx(
SEXP s, R_CFinalizer_t fun, Rboolean onexit);
60 SEXP R_MakeWeakRefC(
SEXP key,
SEXP val, R_CFinalizer_t fin,
62 void R_RunExitFinalizers(
void);
139 bool finalize_on_exit =
false);
169 bool finalize_on_exit =
false);
222 typedef std::list<WeakRef*, Allocator<WeakRef*> > WRList;
223 static WRList* s_live;
224 static WRList* s_f10n_pending;
225 static WRList* s_tombstone;
235 R_CFinalizer_t m_Cfinalizer;
236 WRList::iterator m_lit;
237 bool m_ready_to_finalize;
238 bool m_finalize_on_exit;
241 static void cleanup();
246 static void initialize();
258 static void markThru();
264 void transfer(WRList* from, WRList* to)
266 to->splice(to->end(), *from, m_lit);
273 WRList* wrList()
const;
276 friend class SchwarzCounter<
WeakRef>;