IP Library Granted Patent US 9,459,935
Granted Patent B2
US 9,459,935 · App. 14/142,526 · Granted Oct 4, 2016

Methods and systems for deterministic and multithreaded script objects and script engine

Inventor: Benno Orschel (St. Louis, MO)
Assignee: SunEdison Semiconductor Limited
G06F9/526G06F9/4843G05B19/418Y02P90/02
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,459,935
App. No.
14/142,526
Granted
Oct 4, 2016
Kind
B2
Abstract

A computing device is configured to execute a first instance of a single-threaded script engine in a first thread associated with a first execution context, wherein the first instance of the single-threaded script engine accesses at least one shared script object through a first reference counted script base value object. The computing device is also configured to concurrently execute a second instance of the single-threaded script engine in a second thread_associated with a second execution context, wherein the second instance of the single-threaded script engine accesses the at least one shared script object through a second reference counted script base value object. The script engine does not switch between the execution contexts.

Claims (26)

1. A method for enabling multiple instances of a single-threaded script engine to operate concurrently, the method comprising:

executing, by a computing device, a first instance of a single-threaded script engine in a first thread associated with a first execution context, wherein the first instance of the single-threaded script engine accesses at least one shared script object through a first reference counted script base value object; and

concurrently executing, by the computing device, a second instance of the single-threaded script engine in a second thread associated with a second execution context, wherein the second instance of the single-threaded script engine accesses the at least one shared script object through a second reference counted script base value object, wherein the script engine does not switch between the execution contexts.

2. The method of claim 1 , wherein the at least one shared script object is a reference counted script base object having a first property and a first thread-safe set method for setting a value of the first property, and wherein said method further comprises setting the value of the first property by executing the first thread-safe set method using at least one of the first instance of the single-threaded script engine and the second instance of the single-threaded script engine.

3. The method of claim 1 , wherein the at least one shared script object is a reference counted script base object having a first property and a first thread-safe get method for getting a value of the first property, and wherein said method further comprises getting the value of the first property by executing the first get method using at least one of the first instance of the single-threaded script engine within the first execution context and the second instance of the single-threaded script engine within the second execution context.

4. The method of claim 1 , wherein the computing device is coupled to a memory device, and wherein said method further comprises determining a number of outside references to the at least one shared script object and releasing the at least one shared script object from the memory device if the number of outside references to the at least one shared script object is zero.

5. The method of claim 1 , wherein properties of the at least one shared script object reference a plurality of shared script objects and wherein said method further comprises detecting a reference loop among the plurality of shared script objects.

6. The method of claim 1 , wherein the computing device is coupled to at least one component of at least one machine and wherein said method further comprises controlling the at least one component with the first instance of the script engine and the second instance of the script engine using the at least one shared script object.

7. A non-transitory computer-readable storage device having processor-executable instructions embodied thereon wherein, when executed by a computing device having a processor, the computer-executable instructions cause the computing device to:

execute a first instance of a single-threaded script engine in a first thread associated with a first execution context, wherein the first instance of the single-threaded script engine accesses at least one shared script object through a first reference counted script base value object; and

concurrently execute a second instance of the single-threaded script engine in a second thread associated with a second execution context, wherein the second instance of the single-threaded script engine accesses the at least one shared script object through a second reference counted script base value object, wherein the script engine does not switch between the execution contexts.

8. The non-transitory computer-readable storage device of claim 7 , further comprising computer-executable instructions such that the at least one shared script object is a reference counted script base object having at least one property and at least one thread-safe method for accessing the at least one property.

9. The non-transitory computer-readable storage device of claim 7 , further comprising computer-executable instructions such that the at least one shared script object is a reference counted script base object having a first property and a first thread-safe set method for setting a value of the first property, and said computer-executable instructions further cause the computing device to set the value of the first property by executing the first thread-safe set method using at least one of the first instance of the single-threaded script engine and the second instance of the single-threaded script engine.

10. The non-transitory computer-readable storage device of claim 7 , further comprising computer-executable instructions such that the at least one shared script object is a reference counted script base object having a first property and a first thread-safe get method for getting a value of the first property, and said computer-executable instructions further cause the computing device to get the value of the first property by executing the first get method using at least one of the first instance of the single-threaded script engine within the first execution context and the second instance of the single-threaded script engine within the second execution context.

11. The non-transitory computer-readable storage device of claim 7 , wherein the computing device is coupled to a memory device and wherein said computer-executable instructions further cause the computing device to determine a number of outside references to the at least one shared script object and release the at least one shared script object from the memory device if the number of outside references to the at least one shared script object is zero.

12. The non-transitory computer-readable storage device of claim 7 , further comprising computer-executable instructions such that properties of the at least one shared script object reference a plurality of shared script objects and wherein said computer-readable instructions further cause the computing device to detect a reference loop among the plurality of shared script objects.

13. The non-transitory computer-readable storage device of claim 7 , wherein the computing device is coupled to at least one component of at least one machine and wherein said computer-executable instructions further cause the computing device to control the at least one component with the first instance of the script engine and the second instance of the script engine using the at least one shared script object.

14. A computing device having executable instructions stored in a memory configured to:

execute a first instance of a single-threaded script engine in a first thread associated with a first execution context, wherein the first instance of the single-threaded script engine accesses at least one shared script object through a first reference counted script base value object; and

concurrently execute a second instance of the single-threaded script engine in a second thread associated with a second execution context, wherein the second instance of the single-threaded script engine accesses the at least one shared script object through a second reference counted script base value object, wherein the script engine does not switch between the execution contexts.

15. The computing device of claim 14 , wherein the at least one shared script object includes a reference counted script base object having at least one property and at least one thread-safe method for accessing the at least one property.

16. The computing device of claim 14 , wherein the at least one shared script object is a reference counted script base object having a first property and a first thread-safe set method for setting a value of the first property, wherein said computing device is configured to set the value of the first property by executing the first thread-safe set method using at least one of the first instance of the single-threaded script engine and the second instance of the single-threaded script engine.

17. The computing device of claim 14 , wherein the at least one shared script object is a reference counted script base object having a first property and a first thread-safe get method for getting a value of the first property, wherein said computing device is configured to get the value of the first property by executing the first get method using at least one of the first instance of the single-threaded script engine within the first execution context and the second instance of the single-threaded script engine within the second execution context.

18. The computing device of claim 14 , wherein said computing device is coupled to a memory device and wherein the computing device is further configured to determine a number of outside references to the at least one shared script object and release the at least one shared script object from the memory device if the number of outside references to the at least one shared script object is zero.

19. The computing device of claim 14 , wherein properties of the at least one shared script object reference a plurality of shared script objects and wherein said computing device is configured to detect a reference loop among the plurality of shared script objects.

20. The computing device of claim 14 , wherein said computing device is coupled to at least one component of at least one machine and wherein said computing device is configured to control the at least one component with the first instance of the script engine and the second instance of the script engine using the at least one shared script object.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 7, 2018
From: SUNEDISON SEMICONDUCTOR LIMITED; MEMC JAPAN LIMITED; MEMC ELECTRONIC MATERIALS S.P.A.
To: GLOBALWAFERS CO., LTD.
Reel/Frame 046327/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 27, 2014
From: MEMC ELECTRONIC MATERIALS, INC.
To: SUNEDISON SEMICONDUCTOR LIMITED (UEN201334164H)
Reel/Frame 032963/0522 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 16, 2014
From: ORSCHEL, BENNO
To: MEMC ELECTRONIC MATERIALS, INC.
Reel/Frame 032683/0567 →
Continuity (5)
Provisional Application 61747033 · Dec 28, 2012
Provisional Application 61747038 · Dec 28, 2012
Provisional Application 61747041 · Dec 28, 2012
Provisional Application 61747047 · Dec 28, 2012
Related Publication 20140223440A1 · Aug 7, 2014