Javascript engine
First Claim
Patent Images
1. A computer implemented method for avoiding using a locking mechanism when a thread having a context requests to use an object having a scope and having an owner of said scope, said method comprising:
- determining if said owner is the same as said context;
if said owner is the same as said context, then avoiding using locking mechanism;
if said owner is not the same as said context, then promoting a lock on said object'"'"'s scope;
initially setting said object'"'"'s scope'"'"'s owner to a current context of a current thread when said object'"'"'s scope is created;
resetting said object'"'"'s scope'"'"'s owner to a second thread'"'"'s context when said second thread claims exclusive ownership of said scope; and
setting said object'"'"'s scope'"'"'s owner to null when said ownership is shaped.
8 Assignments
0 Petitions
Accused Products
Abstract
A JavaScript enhancement is provided that increases performance of the JavaScript by avoiding the use of locking mechanisms in multi-threaded sessions. To do so, an object is deemed owned by a thread exclusively until the script is ended or suspended. Because scripts are typically short and complete quickly, the overhead to start and end a request containing a script is much less than the overhead of locking each and every object access done by the script, on average.
-
Citations
6 Claims
-
1. A computer implemented method for avoiding using a locking mechanism when a thread having a context requests to use an object having a scope and having an owner of said scope, said method comprising:
-
determining if said owner is the same as said context;
if said owner is the same as said context, then avoiding using locking mechanism;
if said owner is not the same as said context, then promoting a lock on said object'"'"'s scope;
initially setting said object'"'"'s scope'"'"'s owner to a current context of a current thread when said object'"'"'s scope is created;
resetting said object'"'"'s scope'"'"'s owner to a second thread'"'"'s context when said second thread claims exclusive ownership of said scope; and
setting said object'"'"'s scope'"'"'s owner to null when said ownership is shaped.
-
-
2. A computer implemented method for locking an object having an ownership attribute, wherein a first thread having a first context makes a first request to a JavaScript engine at a first time, said first request comprising using said object, and a second thread having a second context makes a second request to the JavaScript engine at a second and later time, said second request comprising using said object, said method comprising:
-
said JavaScript engine determining if said first request is finished with said object;
if said first request is not finished with said object, then;
said JavaScript engine comparing said second context of said second thread with said ownership attribute of said object;
if said comparison is different, then suspending said second request until said first request is finished with said object;
said JavaScript engine setting said ownership attribute of said object to null;
said JavaScript engine resuming said second request;
otherwise, said JavaScript engine setting said ownership attribute of said object to said second context and processing said second request.
-
-
3. An computer implemented apparatus for avoiding using a locking mechanism when a thread having a context requests to use an object having a scope and having an owner of said scope, said apparatus comprising:
-
means for determining if said owner is the same as said context;
if said owner is the same as said context, then means for avoiding using locking mechanism;
if said owner is not the same as said context, then means for promoting a lock on said object'"'"'s scope;
means for initially setting said object'"'"'s scope'"'"'s owner to a current context of a current thread when said object'"'"'s scope is created;
means for resetting said object'"'"'s scope'"'"'s owner to a second thread'"'"'s context when said second thread claims exclusive ownership of said scope; and
means for setting said object'"'"'s scope'"'"'s owner to null when said ownership is shared.
-
-
4. An computer implemented apparatus for locking an object having an ownership attribute, wherein a first thread having a first context makes a first request to a JavaScript engine at a first time, said first request comprising using said object, and a second thread having a second context makes a second request to the JavaScript engine at a second and later time, said second request comprising using said object, said apparatus comprising:
-
means for said JavaScript engine determining if said first request is finished with said object;
if said first request is not finished with said object, then;
means for said JavaScript engine comparing said second context of said second thread with said ownership attribute of said object;
if said comparison is different, then means for suspending said second request until said first request is finished with said object;
means for said JavaScript engine setting said ownership attribute of said object to null;
means for said JavaScript engine resuming said second request;
otherwise, means for said JavaScript engine setting said ownership attribute of said object to said second context and processing said second request.
-
-
5. A computer implemented method for locking an object having an ownership attribute, wherein a first thread having a first context makes a first request to a scripting service thread (all cases) engine at a first time, said first request comprising using said object, and a second thread having a second context makes a second request to the scripting engine at a second and later time, said second request comprising using said object, said method comprising:
-
said scripting engine determining if said first request is finished with said object;
if said first request is not finished with said object, then;
said scripting engine comparing said second context of said second thread with said ownership attribute of said object;
if said comparison is different, then suspending said second request until said first request is finished with said object;
said scripting engine setting said ownership attribute of said object to null;
said scripting engine resuming said second request;
otherwise, said scripting engine setting said ownership attribute of said object to said second context and processing said second request.
-
-
6. A computer implemented apparatus for locking an object having an ownership attribute, wherein a first thread having a first context makes a first request to a scripting engine at a first time, said first request comprising using said object, and a second thread having a second context makes a second request to the scripting engine at a second and later time, said second request comprising using said object, said apparatus comprising:
-
means for said scripting engine determining if said first request is finished with said object;
if said first request is not finished with said object, then;
means for said scripting t engine comparing said second context of said second thread with said ownership attribute of said object;
if said comparison is different, then means for suspending said second request until said first request is finished with said object;
means for said scripting engine setting said ownership attribute of said object to null;
means for said scripting engine resuming said second request; and
otherwise, means for said scripting engine setting said ownership attribute of said object to said second context and processing said second request.
-
Specification