Bug #6740
re-enable FRAME_LOCK in annotations/embedded_attribute_assign_rewrite and determine when the lock can be released because of an realization event
Status:
New
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
Due date:
% Done:
0%
billable:
No
vendor_id:
GCD
case_num:
version:
History
#2 Updated by Constantin Asofiei over 1 year ago
In #6726, it was measured ~10k calls of LT.flushEnqueuedWidgetAttrs
. Some of these calls are part of a CREATE <widget> ASSIGN ...
statement, where the ASSIGN
has lots of widget attribute assignments.
The code in annotations/embedded_attribute_assign_rewrite.rules
which at some point was bracketing the attr assignment in frame lock/unlock was removed at some point, with a comment that:
<!-- The following code was commented out because assignments in CREATE..ASSIGN should be executed sequentially rather than is a batch. We should support that in the middle of assignment process frame may become realized and some of the following assignments may fail with "widget is already realized error". -->
My thinking is that if an attribute which produces realization events gets assigned, the frame lock should be released immediately, to prevent the bug in the comment above. This may allow reducing the number of widget attr flush calls to the client-side.