> On 16/05/2011 13:33, Vlad Khorsun wrote:
>> So, if code calls attach\release - this is bug, as for me, and i see
>> no reasons
>> to write code in this way intentionally. I consider at as very bad practice
>> as it
>> could lead to the inexpected side effects (such as implicit rollback).
>>
> Now every provider class has a way to "release" with another methods,
Again, "release" it not how object should be finally destroyed. It is for
additional references *only*.
> but take into account that release is base method.
Not sure i understand what do you want to say here. addRef\release used
for reference counting and not for creating\destructing objects.
> But what about different release-able classes? Are you going to add
> additional methods to release them, cause release is only for addRef?
Again not sure i understand you correctly. Basically, if something have
*explicit* constructor (attach) it must have explicit destructor (detach). If
something is not constructed *explicitly* (fb_get_master_interface) it should
be just release()'ed without additional methods.
Yes, in a very simple cases we can omit creation of explicit "destructor"
but
i prefer to have it even in simplest case. Your never know if tomorrow simplest
thing will not became more complex ;)
Show me example of what do you mean by "different release-able classes"
and i'll try to be more precisely.
Regards,
Vlad
------------------------------------------------------------------------------
Achieve unprecedented app performance and reliability
What every C/C++ and Fortran developer should know.
Learn how Intel has extended the reach of its next-generation tools
to help boost performance applications - inlcuding clusters.
http://p.sf.net/sfu/intel-dev2devmay
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel