Patent ID: 11941355
Assignee: GOOGLE LLC
Field: Computer technology (Electrical engineering)
Classification: CPC G | IPC G

Claim 8:
9. A computer program product comprising one or more non-transitory computer-readable storage media having program instructions collectively stored on the one or more non-transitory computer-readable storage media, the program instructions executable to:
identify a first operation to be performed on a document model, wherein, in a first thread, a document is rendered in a user interface using a first parallel copy of the document model that is maintained by the first thread;
based on a task configuration corresponding to the first operation, determine that the first operation is to be performed, in a second thread, on a second parallel copy of the document model that is maintained by the second thread, before applying commands associated with the first operation to the first parallel copy of the document model that is used to render the document in the user interface; and
in response to determining that the first operation is to be performed, in the second thread, on the second parallel copy of the document model:
determine that a checksum of the first parallel copy of the document model matches a checksum of the second parallel copy of the document model; and
in response to determining that the checksum of the first parallel copy of the document model matches the checksum of the second parallel copy of the document model:
initiate, in the second thread, performance of the first operation on the second parallel copy of the document model;
queue a first list of commands based on at least one edit to the document that is received subsequent to initiating the performance of the first operation;
obtain, in the second thread, a calculation result of the first operation, the calculation result comprising a second list of commands;
apply, in the second thread, the second list of commands to the second parallel copy of the document model;
perform an operational transform on at least one command in the second list of commands based on the first list of commands that is queued, to obtain a transformed list of commands; and
apply, in the first thread, the transformed list of commands to the first parallel copy of the document model.