Variable handles
AssigneeOracle International Corporation
InventorsPaul Sandoz, Brian Goetz, John Robert Rose
Life of this patent
Estimating the term…
Abstract
According to one technique, a virtual machine generates an object configured to provide secure access to memory through one or more memory fencing operations. Through the object, the virtual machine receives a call that indicates a memory location and specifies a particular memory fencing operation of the one or more memory fencing operations to perform with respect to the memory location. The virtual machine causes performance of the particular memory fencing operation with respect to the memory location.
Claims28
A method comprising:
- generating a first receiver configured to provide secure access to memory that represents a first variable type through a plurality of distinct memory fencing operations;
- generating a second receiver configured to provide secure access to memory that represents a second variable type through the plurality of distinct memory fencing operations, wherein the first variable type is not the second variable type;
- a particular receiver receiving a call to a function that specifies a particular memory fencing operation of the plurality of distinct memory fencing operations to perform with respect to a memory location, wherein the function has a signature that is polymorphic to indicate that the function can return all types and accept all numbers and types of arguments, wherein the particular receiver is:
- selected from the group consisting of the first receiver and the second receiver, and
- related to a class that declares the plurality of distinct memory fencing operations for a plurality of different variable types, but without including an implementation of the plurality of distinct memory fencing operations for at least one particular variable type of the plurality of different variable types;
- the particular receiver causing, responsive to receiving said call, performance of the particular memory fencing operation with respect to the memory location;
- and
- wherein the method is performed by one or more processors.
A non-transitory computer-readable storage medium storing one or more instructions which, when executed by one or more processors, cause:
- generating a first receiver configured to provide secure access to memory that represents a first variable type through a plurality of distinct memory fencing operations;
- generating a second receiver configured to provide secure access to memory that represents a second variable type through the plurality of distinct memory fencing operations, wherein the first variable type is not the second variable type;
- a particular receiver receiving a call to a function that specifies a particular memory fencing operation of the plurality of distinct memory fencing operations to perform with respect to a memory location, wherein the function has a signature that is polymorphic to indicate that the function can return all types and accept all numbers and types of arguments, wherein the particular receiver is:
- selected from the group consisting of the first receiver and the second receiver, and
- related to a class that declares the plurality of distinct memory fencing operations for a plurality of different variable types, but without including an implementation of the plurality of distinct memory fencing operations for at least one particular variable type of the plurality of different variable types;
- the particular receiver causing, responsive to receiving said call, performance of the particular memory fencing operation with respect to the memory location.
Dependencies are inferred from the claim text.