Review: Needs Fixing

That looks slightly less horrible, but not by much, it's still a hack.

But the race condition is still there, just the other way around: if the 
`finally` for the first dict is run while the second one is within the `try`, 
its items are potentially going to be partially evaluated still, which is not 
going to work either.

Wouldn't it be possible to create a subclass to TinyDict overriding `_eval` to 
a noop/identity, and overriding `__init__` to recursively instantiate itself 
rather than TinyDict?

Or even better, line 97 `v = TinyDict(**v)` could probably be replaced by `v = 
type(self)(**v)` with a commend explaining why it's done (so that subclasses 
can recursively instantiate themselves instead of the base class).

This way the whole try/finally crap would be removed and the code is 
thread-safe.
-- 
https://code.launchpad.net/~openerp-dev/openobject-client-web/6.0-opw-574212-xal/+merge/104104
Your team OpenERP R&D Team is subscribed to branch 
lp:~openerp-dev/openobject-client-web/6.0-opw-574212-xal.

_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help   : https://help.launchpad.net/ListHelp

Reply via email to