Re: oaf activation bug fix ...
- From: Maciej Stachowiak <mjs noisehavoc org>
- To: Michael Meeks <michael ximian com>
- Cc: Maciej Stachowiak <mjs eazel com>, gnome-components-list gnome org
- Subject: Re: oaf activation bug fix ...
- Date: Thu, 15 Nov 2001 14:59:34 -0800
On 15Nov2001 05:56PM (-0500), Michael Meeks wrote:
>
> Hi there,
>
> This fixes Dan's reported bug: #64642, may I commit ?
>
> It would be great if you could review my bonobo-activation leak
> fix at the same time; since I have another patch queued here adding some
> more regression tests that I'm holding off on until you do.
>
See the bug report for my comments. BTW for oaf/bonobo-activation we
generally do not close the bug until this fix is actually in the tree.
Thanks for the fix!
- Maciej
> Thanks,
>
> Michael.
>
> Index: ChangeLog
> ===================================================================
> RCS file: /cvs/gnome/oaf/ChangeLog,v
> retrieving revision 1.190
> diff -u -p -u -r1.190 ChangeLog
> --- ChangeLog 2001/11/09 08:47:54 1.190
> +++ ChangeLog 2001/11/15 22:52:49
> @@ -1,3 +1,8 @@
> +2001-11-16 Michael Meeks <michael ximian com>
> +
> + * oafd/od-corba.c (impl_OAF_ObjectDirectory_activate):
> + fix for mutliple activations causing grief issues ...
> +
> 2001-11-09 Wang Jian <lark linux net cn>
>
> * configure.in(ALL_LINGUAS): Added zh_CN.
> Index: oafd/od-corba.c
> ===================================================================
> RCS file: /cvs/gnome/oaf/oafd/od-corba.c,v
> retrieving revision 1.33
> diff -u -p -u -r1.33 od-corba.c
> --- oafd/od-corba.c 2001/09/04 03:46:53 1.33
> +++ oafd/od-corba.c 2001/11/15 22:52:50
> @@ -430,6 +430,7 @@ impl_OAF_ObjectDirectory_activate (impl_
> ODActivationInfo ai;
> OAF_GeneralError *errval;
> char *error_description;
> + CORBA_Environment retry_ev;
>
> retval = CORBA_OBJECT_NIL;
>
> @@ -455,6 +456,31 @@ impl_OAF_ObjectDirectory_activate (impl_
>
> if (si != NULL) {
> retval = od_server_activate (si, &ai, servant->self, ev);
> + /* If we failed to activate - it may be because our
> + * request re-entered _during_ the activation
> + * process resulting in a second process being started
> + * but failing to register - so we'll look up again here
> + * to see if we can get it.
> + * FIXME: we should not be forking redundant processes
> + * while an activation of that same process is on the
> + * stack.
> + * FIXME: we only get away with this hack because we
> + * try and fork another process & thus allow the reply
> + * from the initial process to be handled in the event
> + * loop.
> + */
> +
> + if (ev->_major != CORBA_NO_EXCEPTION) {
> + CORBA_exception_init (&retry_ev);
> +
> + retval = od_get_active_server (servant, iid, ctx, &retry_ev);
> +
> + CORBA_exception_free (&retry_ev);
> +
> + if (retval != CORBA_OBJECT_NIL) {
> + CORBA_exception_free (ev);
> + }
> + }
> } else {
> errval = OAF_GeneralError__alloc ();
>
>
> --
> mmeeks gnu org <><, Pseudo Engineer, itinerant idiot
>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]