rom: phil_adams@us.ibm.com Received: from southrelay02.raleigh.ibm.com (southrelay02.raleigh.ibm.com [9.37.3.209]) by e24.nc.us.ibm.com (8.9.3/8.9.3) with ESMTP id KAA24110; Tue, 6 Jun 2000 10:14:03 -0500 Received: from d54mta02.raleigh.ibm.com (d54mta02.raleigh.ibm.com [9.67.228.34]) by southrelay02.raleigh.ibm.com (8.8.8m3/NCO v4.9) with SMTP id KAA24430; Tue, 6 Jun 2000 10:26:34 -0400 Received: by d54mta02.raleigh.ibm.com(Lotus SMTP MTA v4.6.5 (863.2 5-20-1999)) id 852568F6.004F5338 ; Tue, 6 Jun 2000 10:26:26 -0400 X-Lotus-FromDomain: IBMUS To: interceptors-ftf@omg.org, issues@omg.org cc: butek@us.ibm.com Message-ID: <852568F6.004F4F1D.00@d54mta02.raleigh.ibm.com> Date: Tue, 6 Jun 2000 09:15:07 -0500 Subject: issue re: Portable Interceptors / register_initial_reference() Mime-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset=us-ascii X-UIDL: 0`%e9E(2e9)DOd9Ia"!! I am in the process of implementing Portable Interceptors within a C++ ORB, and I would like to raise an issue for resolution regarding the semantics of the "register_initial_reference()" function, particularly with respect to the memory management of the object being registered. The interface for this function is as follows: void register_initial_reference ( ObjectId id, Object_ptr obj ); Within the Portable Interceptors specification, there is really no information about how the memory for the object should be managed. For example, does the caller of "register_initial_reference()" pass ownership of the object to the ORB, or not? Also, does the caller of "resolve_initial_references()" gain ownership of the object which is returned, or not? Here is my proposed resolution: The fact that the "obj" parameter is a CORBA::Object implies that it is a reference-counted object. Therefore, it would make sense that when "register_initial_reference()" is called, the ORB performs a "_duplicate()" on the object to increment its reference count (the ORB would then hold its own reference count). The caller of "register_initial_reference()" can decide whether to call "release()" or retain its own reference count. Later, when "resolve_initial_references()" is called, the ORB would call "_duplicate()" on the object prior to returning it to the caller, thereby giving the caller its own reference count. The caller would then need to call "release()" when it is finished with the object. When the ORB is deleted, it must clean up the lookup table of registered objects. To do this, it simply calls "release()" on each one, and if no one else holds a reference count, then the object is simply deleted. I would like the hear other people's thoughts on this, particularly those who have done or are working on a C++ implementation of PI. Thanks... Phil Adams WebSphere Enterprise Edition Component Broker Development IBM Austin, TX phil_adams@us.ibm.com (512) 838-6702 (tie 678) Date: Tue, 6 Jun 2000 12:21:22 -0230 From: Matthew Newhook To: phil_adams@us.ibm.com Cc: interceptors-ftf@omg.org, issues@omg.org, butek@us.ibm.com Subject: Re: issue re: Portable Interceptors / register_initial_reference() Message-ID: <20000606122122.A23472@ooc.com> References: <852568F6.004F4F1D.00@d54mta02.raleigh.ibm.com> Mime-Version: 1.0 X-Mailer: Mutt 1.0pre3us In-Reply-To: <852568F6.004F4F1D.00@d54mta02.raleigh.ibm.com> Content-Type: text/plain; charset=us-ascii X-UIDL: ^%3!!7M&e9p&Be9I+N!! Hi, I think that the spec shouldn't say anything about this -- memory management must follow the C++ mapping. What you've described below, however, seems correct. Regards, Matthew On Tue, Jun 06, 2000 at 09:15:07AM -0500, phil_adams@us.ibm.com wrote: > > > > I am in the process of implementing Portable Interceptors within a C++ > ORB, > and I would like to raise an issue for resolution regarding the semantics > of the > "register_initial_reference()" function, particularly with respect to the > memory > management of the object being registered. > > The interface for this function is as follows: > > void register_initial_reference ( > ObjectId id, > Object_ptr obj > ); > > Within the Portable Interceptors specification, there is really no > information about > how the memory for the object should be managed. For example, does the > caller of > "register_initial_reference()" pass ownership of the object to the ORB, or > not? > Also, does the caller of "resolve_initial_references()" gain ownership of > the object > which is returned, or not? > > > Here is my proposed resolution: > > The fact that the "obj" parameter is a CORBA::Object implies that it is a > reference-counted > object. Therefore, it would make sense that when > "register_initial_reference()" is called, the > ORB performs a "_duplicate()" on the object to increment its reference > count (the ORB would > then hold its own reference count). The caller of > "register_initial_reference()" can decide > whether to call "release()" or retain its own reference count. > > Later, when "resolve_initial_references()" is called, the ORB would call > "_duplicate()" on the > object prior to returning it to the caller, thereby giving the caller its > own reference count. > The caller would then need to call "release()" when it is finished with > the object. > > When the ORB is deleted, it must clean up the lookup table of registered > objects. To do this, > it simply calls "release()" on each one, and if no one else holds a > reference count, then > the object is simply deleted. > > I would like the hear other people's thoughts on this, particularly those > who have done or are > working on a C++ implementation of PI. > > Thanks... > > > Phil Adams > WebSphere Enterprise Edition > Component Broker Development > IBM Austin, TX > phil_adams@us.ibm.com > (512) 838-6702 (tie 678) > -- Matthew Newhook E-Mail: mailto:matthew@ooc.com Software Designer WWW: http://www.ooc.com Object Oriented Concepts, Inc. Phone: (709) 738-3725 From: butek@us.ibm.com Received: from southrelay02.raleigh.ibm.com (southrelay02.raleigh.ibm.com [9.37.3.209]) by e21.nc.us.ibm.com (8.9.3/8.9.3) with ESMTP id KAA55110 for ; Tue, 6 Jun 2000 10:47:56 -0500 Received: from d54mta03.raleigh.ibm.com (d54mta03.raleigh.ibm.com [9.67.228.35]) by southrelay02.raleigh.ibm.com (8.8.8m3/NCO v4.9) with SMTP id KAA38220 for ; Tue, 6 Jun 2000 10:57:34 -0400 Received: by d54mta03.raleigh.ibm.com(Lotus SMTP MTA v4.6.5 (863.2 5-20-1999)) id 852568F6.00522BB0 ; Tue, 6 Jun 2000 10:57:31 -0400 X-Lotus-FromDomain: IBMUS To: interceptors-ftf@omg.org Message-ID: <852568F6.0051E4D4.00@d54mta03.raleigh.ibm.com> Date: Tue, 6 Jun 2000 10:54:28 -0400 Subject: Re: issue re: Portable Interceptors / register_initial_reference() Mime-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset=us-ascii X-UIDL: O]Y!!?G^d9MpWd9gZF!! I agree that the core spec shouldn't say anything about this. But we've just defined PIDL. Perhaps we should have provided some text for the mappings like we did for register_orb_initializer? Russell Butek butek@us.ibm.com Matthew Newhook on 06/06/2000 07:21:22 AM To: Phil Adams/Austin/IBM@IBMUS cc: interceptors-ftf@omg.org, issues@omg.org, Russell Butek/Austin/IBM@IBMUS Subject: Re: issue re: Portable Interceptors / register_initial_reference() Hi, I think that the spec shouldn't say anything about this -- memory management must follow the C++ mapping. What you've described below, however, seems correct. Regards, Matthew On Tue, Jun 06, 2000 at 09:15:07AM -0500, phil_adams@us.ibm.com wrote: > > > > I am in the process of implementing Portable Interceptors within a C++ > ORB, > and I would like to raise an issue for resolution regarding the semantics > of the > "register_initial_reference()" function, particularly with respect to the > memory > management of the object being registered. > > The interface for this function is as follows: > > void register_initial_reference ( > ObjectId id, > Object_ptr obj > ); > > Within the Portable Interceptors specification, there is really no > information about > how the memory for the object should be managed. For example, does the > caller of > "register_initial_reference()" pass ownership of the object to the ORB, or > not? > Also, does the caller of "resolve_initial_references()" gain ownership of > the object > which is returned, or not? > > > Here is my proposed resolution: > > The fact that the "obj" parameter is a CORBA::Object implies that it is a > reference-counted > object. Therefore, it would make sense that when > "register_initial_reference()" is called, the > ORB performs a "_duplicate()" on the object to increment its reference > count (the ORB would > then hold its own reference count). The caller of > "register_initial_reference()" can decide > whether to call "release()" or retain its own reference count. > > Later, when "resolve_initial_references()" is called, the ORB would call > "_duplicate()" on the > object prior to returning it to the caller, thereby giving the caller its > own reference count. > The caller would then need to call "release()" when it is finished with > the object. > > When the ORB is deleted, it must clean up the lookup table of registered > objects. To do this, > it simply calls "release()" on each one, and if no one else holds a > reference count, then > the object is simply deleted. > > I would like the hear other people's thoughts on this, particularly those > who have done or are > working on a C++ implementation of PI. > > Thanks... > > > Phil Adams > WebSphere Enterprise Edition > Component Broker Development > IBM Austin, TX > phil_adams@us.ibm.com > (512) 838-6702 (tie 678) > -- Matthew Newhook E-Mail: mailto:matthew@ooc.com Software Designer WWW: http://www.ooc.com Object Oriented Concepts, Inc. Phone: (709) 738-3725 Date: Tue, 6 Jun 2000 12:43:50 -0230 From: Matthew Newhook To: butek@us.ibm.com Cc: interceptors-ftf@omg.org Subject: Re: issue re: Portable Interceptors / register_initial_reference() Message-ID: <20000606124350.A23848@ooc.com> References: <852568F6.0051E4D4.00@d54mta03.raleigh.ibm.com> Mime-Version: 1.0 X-Mailer: Mutt 1.0pre3us In-Reply-To: <852568F6.0051E4D4.00@d54mta03.raleigh.ibm.com> Content-Type: text/plain; charset=us-ascii X-UIDL: *T%"!&R'e9W<]d9N"Sd9 Hi, On Tue, Jun 06, 2000 at 10:54:28AM -0400, butek@us.ibm.com wrote: > > > I agree that the core spec shouldn't say anything about this. But we've > just defined PIDL. Perhaps we should have provided some text for the > mappings like we did for register_orb_initializer? Isn't it ORBInitInfo actually a local interface? Therefore it follows the C++ mapping rules. > Russell Butek > butek@us.ibm.com Regards, Matthew -- Matthew Newhook E-Mail: mailto:matthew@ooc.com Software Designer WWW: http://www.ooc.com Object Oriented Concepts, Inc. Phone: (709) 738-3725 From: butek@us.ibm.com Received: from southrelay02.raleigh.ibm.com (southrelay02.raleigh.ibm.com [9.37.3.209]) by e23.nc.us.ibm.com (8.9.3/8.9.3) with ESMTP id LAA02138 for ; Tue, 6 Jun 2000 11:48:04 -0500 Received: from d54mta03.raleigh.ibm.com (d54mta03.raleigh.ibm.com [9.67.228.35]) by southrelay02.raleigh.ibm.com (8.8.8m3/NCO v4.9) with SMTP id MAA28580 for ; Tue, 6 Jun 2000 12:07:59 -0400 Received: by d54mta03.raleigh.ibm.com(Lotus SMTP MTA v4.6.5 (863.2 5-20-1999)) id 852568F6.00589E3C ; Tue, 6 Jun 2000 12:07:56 -0400 X-Lotus-FromDomain: IBMUS To: interceptors-ftf@omg.org Message-ID: <852568F6.005848B0.00@d54mta03.raleigh.ibm.com> Date: Tue, 6 Jun 2000 12:04:17 -0400 Subject: Re: issue re: Portable Interceptors / register_initial_reference() Mime-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset=us-ascii X-UIDL: KQF!!a98e9'/]d9=^%e9 Yes, ORBInitInfo is a local interface. But register_initial_reference also appears on the ORB. Russell Butek butek@us.ibm.com Matthew Newhook on 06/06/2000 07:43:50 AM To: Russell Butek/Austin/IBM@IBMUS cc: interceptors-ftf@omg.org Subject: Re: issue re: Portable Interceptors / register_initial_reference() Hi, On Tue, Jun 06, 2000 at 10:54:28AM -0400, butek@us.ibm.com wrote: > > > I agree that the core spec shouldn't say anything about this. But we've > just defined PIDL. Perhaps we should have provided some text for the > mappings like we did for register_orb_initializer? Isn't it ORBInitInfo actually a local interface? Therefore it follows the C++ mapping rules. > Russell Butek > butek@us.ibm.com Regards, Matthew -- Matthew Newhook E-Mail: mailto:matthew@ooc.com Software Designer WWW: http://www.ooc.com Object Oriented Concepts, Inc. Phone: (709) 738-3725 Date: Tue, 6 Jun 2000 13:54:35 -0230 From: Matthew Newhook To: butek@us.ibm.com Cc: interceptors-ftf@omg.org Subject: Re: issue re: Portable Interceptors / register_initial_reference() Message-ID: <20000606135434.A24443@ooc.com> References: <852568F6.005848B0.00@d54mta03.raleigh.ibm.com> Mime-Version: 1.0 X-Mailer: Mutt 1.0pre3us In-Reply-To: <852568F6.005848B0.00@d54mta03.raleigh.ibm.com> Content-Type: text/plain; charset=us-ascii X-UIDL: mC3!!=/?e9%]:!!<>d!! Hi, On Tue, Jun 06, 2000 at 12:04:17PM -0400, butek@us.ibm.com wrote: > > > Yes, ORBInitInfo is a local interface. But register_initial_reference also > appears on the ORB. True. At any rate it should be pretty obvious that the ORB must retain a reference to the object that is registered -- otherwise how can it guarantee that the object isn't released. Anyway, if others would like to see some statement in the spec about this then thats fine too :) > Russell Butek > butek@us.ibm.com Regards, Matthew -- Matthew Newhook E-Mail: mailto:matthew@ooc.com Software Designer WWW: http://www.ooc.com Object Oriented Concepts, Inc. Phone: (709) 738-3725 Date: Fri, 22 Mar 2002 17:18:12 -0500 From: Jishnu Mukerji Organization: Hewlett-Packard Company X-Mailer: Mozilla 4.78 [en] (Windows NT 5.0; U) X-Accept-Language: en MIME-Version: 1.0 To: corba-rtf@omg.org Subject: Issue 3672 proposed resolution Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii X-UIDL: U^f!!>Z~e9#3%"!HY(e9 The following resolution will appear in the next vote of the CORBA Core RTF unless there is signficant technical objection to the proposal. Jishnu. ___________________________________________________________ Issue 3672: Portable Interceptors / register_initial_reference() (interceptors-rtf) http://cgi.omg.org/issues/issue3672.txt Source: International Business Machines (Mr. Phil Adams, pcadams@us.ibm.com) Nature: Uncategorized Issue Severity: Summary: I am in the process of implementing Portable Interceptors within a C++ ORB, and I would like to raise an issue for resolution regarding the semantics of the "register_initial_reference()" function, particularly with respect to the memory management of the object being registered. . . . . . . . . Resolution: No need to say anything regarding this in the Core spec. As for language mapping specs traditionally, when no special mapping is provided for something in a PIDL it is assumed that it uses the general language mapping. So most likely nothing needs to be said there either. So close no change. Revised Text: Actions taken: Close no change. June 6, 2000: received issue