Re: GObject dispose vs. finalize
- From: Andreas Rottmann <a rottmann gmx at>
- To: gtk-devel-list gnome org
- Subject: Re: GObject dispose vs. finalize
- Date: Mon, 19 Jul 2004 21:12:08 +0200
Ryan McDougall <NQG24419 nifty com> writes:
> I want to make sure I understand the differences between the two. Is the
> following correct/accurate? What would you add?
>
> "The dispose method is supposed to release any references to resources
> when the object first knows it will be destroyed. The dispose method may
> be called any number of times, and thus the code therein should be safe
> in that case. The finalize method finishes releasing the remaining
> resources just before the object itself will be freed from memory, and
> therefore it will only be called once. The two step process helps reduce
> cyclic references. Both dispose and finalize must chain up to their
> parent objects by calling their parent's respective methods *after* they
> have disposed or finalized their own members.
>
Seems OK.
> Knowing which method is the appropriate place to put certain destruction
> code is in general not an easy problem to solve. However, when dealing
> with reference counted libraries (such as GTK+), one should unreference
> all objects in dispose, and free all memory or close file descriptors in
> finalize."
>
> How does one make sure their code is safe inside dispose? With static
> variables?
>
See http://le-hacker.org/papers/gobject/ch05.html#howto-gobject-destruction.
Andy
--
Andreas Rottmann | Rotty ICQ | 118634484 ICQ | a rottmann gmx at
http://yi.org/rotty | GnuPG Key: http://yi.org/rotty/gpg.asc
Fingerprint | DFB4 4EB4 78A4 5EEE 6219 F228 F92F CFC5 01FD 5B62
Beware of bugs in the above code; I have only proved it correct,
not tried it. -- Donald E. Knuth
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]