by
John Beaufoy >> Tue, 19 Jul 2005 11:08:12 GMT
Consider the following:
create user transient;
app.myUser := user;
What would be wrong with changing this code to
create app.myUser transient;
or
create user appTransient;
?
1) It does nothing for the applications already in production.
2) You have to think about memory mgmt to know which to use, is that any better than what we have now?
3) Potential issues are introduced, like attempting to passback 'method' transients
4) appTransients are still there as potential memory leaks, so how far does this go to cracking the problem?
I am trying to keep it as simple as possible, and I don't see why periodic checks, checks for references or whether it has been assigned elsewhere are necessary.
Simpler for who? This maybe more work for the Jade plant, but the result should be an AGC with no change to the code semantics we use now and one that catches most cases - which has got to be good?
consider calling the method a second time, the original transient is now orphaned and will miss the AGC.
Don't understand what you mean by this.
Overwriting references with new objects, in your example this would be calling the following two lines where oid xxx.1 is now a 'leak'
create app.myUser transient; // oid xxx.1 created
create app.myUser transient; // oid xxx.2 created