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

