[Python-ideas] context managers used to allocate resources can be abused
Terry Reedy
tjreedy at udel.edu
Sun Dec 18 04:23:13 CET 2011
More information about the Python-ideas mailing list
Sun Dec 18 04:23:13 CET 2011
- Previous message: [Python-ideas] context managers used to allocate resources can be abused - a solution
- Next message: [Python-ideas] context managers used to allocate resources can be abused - a solution
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 12/16/2011 9:07 PM, Nick Coghlan wrote: > On Sat, Dec 17, 2011 at 11:00 AM, Alon Horev<alon at horev.net> wrote: >> Hello, >> >> while I was implementing a connection pool i've noticed a pitfall of our >> beloved with statements: >> >> with pool.get_connection() as conn: >> ....conn.execute(...) >> conn.execute(...) # the connection has been returned to the pool and does >> not belong to the user! Good catch! > That's a bug in the connection pool implementation. If the underlying > connection has been returned to the pool, the proxy returned by the > context manager shouldn't work any more. I believe Nick is saying that conn.__exit__ should close the connection and release the resource, that being the point of with statements and context managers. Can you open a tracker issue? > Try the above code structure with a file object and it will give you > "IO operation on closed file". Because file_object.__exit__ closes the connection to the OS resource. -- Terry Jan Reedy
- Previous message: [Python-ideas] context managers used to allocate resources can be abused - a solution
- Next message: [Python-ideas] context managers used to allocate resources can be abused - a solution
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-ideas mailing list