ownership problem?
Jeffrey Schwab
jeff at schwabcenter.com
Mon Nov 21 09:29:26 EST 2005
Fredrik Lundh wrote:
> Jeffrey Schwab wrote:
>
>
>>>>>the problem isn't determining who owns it, the problem is determining
>>>>>who's supposed to release it. that's not a very common problem in a
>>>>>garbage-collected language...
>>>>
>>>>Yes it is. Memory is only one type of resource.
>>>
>>>Python's garbage collector deals with objects, not memory.
>>
>>But you don't want to spin and wait for the garbage collector to release
>>the object that happens to be holding a thread lock...
>
>
> no, but arguing that sockets and thread locks are objects that suffer
> from ownership problems is rather silly.
Why? Are those resources somehow less important than memory?
> if their use isn't localized to a
> single function or a single manager object, your design is flawed.
!
I disagree. Suppose some code is written to work with any file-like
object. Now suppose a file-like object is passed in that represents
some URL. The first time the object is read, the object opens a
suitable network connection. When is it safe to close that connection?
The client code can't say, because it doesn't even know any network
connection has been opened. In a language with deterministic
destructors, the destructor can be relied on to close the connection as
soon as the object goes out of scope.
More information about the Python-list
mailing list