Re: gtkmozembed: why kill itself in destructor?
Hi, ext Zhihai Wang wrote: Deal all, In EmbedPrivate.cpp, EmbedPrivate::~EmbedPrivate() { sWindowList-RemoveElement(this); sWidgetCount--; mNeedFav = PR_FALSE; if (mProgress) mProgress-Shutdown(); if (mEventListener) mEventListener-Shutdown(); mOwningWidget = nsnull; if (sWidgetCount) return; gboolean bval = FALSE; if (gtk_moz_embed_common_get_pref (G_TYPE_BOOLEAN,gtkmozembed.no_destroy_on_last_window, bval) bval) return; int pid = getpid(); EmbedCommon::DeleteInstance(); EmbedGlobalHistory::DeleteInstance(); kill (pid, SIGUSR1); kill (pid, SIGKILL); } Why shall we kill pid in the end? Can't the program exit normally? AFAIK it can be quite a bit faster. Normal process exit goes through a lot of destructor code, freeing things that are anyway freed by the operating system when process terminates. Browser is threaded, so maybe that the destructors use locking too... - Eero on average free usually takes more time than allocation. ___ maemo-developers mailing list maemo-developers@maemo.org https://lists.maemo.org/mailman/listinfo/maemo-developers
Re: gtkmozembed: why kill itself in destructor?
On Wed, Jan 14, 2009 at 02:27:04PM +0200, Eero Tamminen wrote: ext Zhihai Wang wrote: Deal all, In EmbedPrivate.cpp, EmbedPrivate::~EmbedPrivate() { sWindowList-RemoveElement(this); sWidgetCount--; mNeedFav = PR_FALSE; if (mProgress) mProgress-Shutdown(); if (mEventListener) mEventListener-Shutdown(); mOwningWidget = nsnull; if (sWidgetCount) return; gboolean bval = FALSE; if (gtk_moz_embed_common_get_pref (G_TYPE_BOOLEAN,gtkmozembed.no_destroy_on_last_window, bval) bval) return; int pid = getpid(); EmbedCommon::DeleteInstance(); EmbedGlobalHistory::DeleteInstance(); kill (pid, SIGUSR1); kill (pid, SIGKILL); } Why shall we kill pid in the end? Can't the program exit normally? AFAIK it can be quite a bit faster. Normal process exit goes through a lot of destructor code, freeing things that are anyway freed by the operating system when process terminates. Browser is threaded, so maybe that the destructors use locking too... That's what the _exit() function from unistd.h is for, isn't it? Marius Gedminas -- Don't trust a statistic you haven't faked yourself. -- Seen in another posting by Markus Kuhn signature.asc Description: Digital signature ___ maemo-developers mailing list maemo-developers@maemo.org https://lists.maemo.org/mailman/listinfo/maemo-developers
Re: gtkmozembed: why kill itself in destructor?
Hi, ext Marius Gedminas wrote: kill (pid, SIGUSR1); kill (pid, SIGKILL); } Why shall we kill pid in the end? Can't the program exit normally? AFAIK it can be quite a bit faster. Normal process exit goes through a lot of destructor code, freeing things that are anyway freed by the operating system when process terminates. Browser is threaded, so maybe that the destructors use locking too... That's what the _exit() function from unistd.h is for, isn't it? I guess it could be used instead. Maybe somebody wants to file a bug? (I think that unlike SIGKILL, debugger can catch _exit()) - Eero ___ maemo-developers mailing list maemo-developers@maemo.org https://lists.maemo.org/mailman/listinfo/maemo-developers