Intelligent backup and versioning
US-2018173874-A1 · Jun 21, 2018 · US
US11074112B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11074112-B2 |
| Application number | US-201715406093-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jan 13, 2017 |
| Priority date | Jan 13, 2017 |
| Publication date | Jul 27, 2021 |
| Grant date | Jul 27, 2021 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Systems, methods, and software are disclosed herein for maintain the responsiveness of a user interface to an application. In an implementation, a synchronous operation is commenced on a main thread of an application. The application monitors for a request by an additional thread to interrupt the synchronous operation in favor of an asynchronous operation. The synchronous operation is canceled in response to the request and is retried after completing the asynchronous operation.
Opening claim text (preview).
The invention claimed is: 1. A computing apparatus comprising: one or more computer readable storage media; a processing system operatively coupled with the one or more computer readable storage media; and program instructions stored on the one or more computer readable storage media for performing a synchronous operation on a main thread of an application and maintaining responsiveness in a user interface to the application; wherein the program instructions, when executed by the processing system, direct the processing system to at least: start the synchronous operation on the main thread of the application at a beginning of the synchronous operation, wherein the synchronous operation comprises an auto-save operation; via the synchronous operation, detect a request by an additional thread of the application to interrupt the synchronous operation in favor of an asynchronous operation, wherein the additional thread comprises a user interface thread that generates the request in response to an input received via the user interface; via the synchronous operation, cancel the synchronous operation in response to the request; immediately after completing the asynchronous operation, restart the synchronous operation from the beginning of the synchronous operation; detect at least one other request by the additional thread to interrupt the synchronous operation in favor of a different asynchronous operation; and override the one other request in favor of the synchronous operation. 2. The computing apparatus of claim 1 wherein the main thread includes an execution queue having an order in which operations are executed, and wherein the program instructions, when executed by the processing system, further direct the processing system to, subsequent to canceling the synchronous operation, insert the synchronous operation in the execution queue in a position of the order immediately after the asynchronous operation. 3. The computing apparatus of claim 1 wherein the program instructions further direct the processing system to, responsive to detecting the input to the user interface of the application, generate the request via the additional thread. 4. The computing apparatus of claim 1 wherein the application includes an input event queue, and wherein to detect the request, the program instructions direct the processing system to scan the input event queue. 5. The computing apparatus of claim 1 wherein the synchronous operation further comprises at least one of an operation timer, a block scheduler, and an abort manager. 6. The computing apparatus of claim 1 wherein the asynchronous operation takes a lesser amount of time to complete than the synchronous operation and wherein the different asynchronous operation takes a greater amount of time to complete than the synchronous operation. 7. The computing apparatus of claim 1 wherein to detect the request, the program instructions direct the processing system to check a global flag set by the additional thread. 8. A method for performing a synchronous operation on a main thread of an application while maintaining responsiveness in a user interface to the application, the method comprising: starting the synchronous operation on the main thread of the application at a beginning of the synchronous operation, wherein the synchronous operation comprises an auto-save operation; via the synchronous operation, detecting a request by an additional thread of the application to interrupt the synchronous operation in favor of an asynchronous operation, wherein the additional thread comprises a user interface thread that generates the request in response to an input received via the user interface; via the synchronous operation, canceling the synchronous operation in response to the request; immediately after completing the asynchronous operation, restarting the synchronous operation from the beginning of the synchronous operation; detecting at least one other request by the additional thread to interrupt the synchronous operation in favor of a different asynchronous operation; and overriding the one other request in favor of the synchronous operation. 9. The method of claim 8 wherein the main thread includes an execution queue having an order in which operations are executed, and wherein the method further comprises, subsequent to canceling the synchronous operation, inserting the synchronous operation in the execution queue in a position of the order immediately after the asynchronous operation. 10. The method of claim 8 further comprising, responsive to detecting the input to the user interface of the application, generating the request via the additional thread. 11. The method of claim 8 wherein the application includes an input event queue, and wherein detecting the request comprises scanning the input event queue. 12. The method of claim 8 wherein the synchronous operation further comprises at least one of an operation timer, a block scheduler, and an abort manager. 13. The method of claim 12 wherein the asynchronous operation takes a lesser amount of time to complete than the synchronous operation and wherein the different asynchronous operation takes a greater amount of time to complete than the synchronous operation. 14. The method of claim 8 wherein detecting the request comprises checking a global flag set by the additional thread. 15. One or more non-transitory computer readable storage media having program instructions stored thereon for performing a synchronous operation on a main thread of an application while maintaining responsiveness in a user interface to the application, wherein the program instructions, when executed by a processing system, direct the processing system to at least: start the synchronous operation on the main thread of the application at a beginning of the synchronous operation, wherein the synchronous operation comprises an auto-save operation; via the synchronous operation, detect a request by a user interface thread of the application to interrupt the synchronous operation in favor of an asynchronous operation, wherein the user interface thread generates the request in response to an input received via the user interface; via the synchronous operation, cancel the synchronous operation in response to the request; immediately after completing the asynchronous operation, restart the synchronous operation from the beginning of the synchronous operation; detect at least one other request by the user interface thread to interrupt the synchronous operation in favor of a different asynchronous operation; and override the one other request in favor of the synchronous operation. 16. The non-transitory one or more computer readable storage media of claim 15 wherein the main thread includes an execution queue having an order in which operations are executed, and wherein the program instructions, when executed by the processing system, further direct the processing system to, subsequent to canceling the synchronous operation, insert the synchronous operation in the execution queue in a position of the order immediately after the asynchronous operation. 17. The non-transitory one or more computer readable storage media of claim 15 wherein the program instructions further direct the processing system to, responsive to detecting the input to the user interface of the application, generate the request via the user interface thread. 18. The non-transitory one or more computer readable storage media of claim 15 wherein to detect the request, the program instructions direct the process
Related publications grouped by family.
Answers are generated from the same data shown on this page.