Patents by Inventor Christopher J. Plummer

Christopher J. Plummer has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 10891214
    Abstract: Providing debugging support for a carried thread are disclosed. A debug agent converts between identifiers of carried threads and carrier threads. Further, a debug agent transfers debug configurations amongst multiple carrier threads associated with a same carried thread. With respect to debug configuration transfers, an agent receives, from a debugger, a command to set an active debug configuration for a carrier thread on which a carried thread is mounted. Responsive to determining that the carried thread is unmounted, the agent stores the active debug configuration for the carrier thread as a recorded debug configuration associated with the carried thread. The agent transmits a command to reset the active debug configuration on the carrier thread. Responsive to determining that the carried thread is mounted on a carrier thread, the agent retrieves the recorded debug configuration. The agent restores the recorded debug configuration as an active debug configuration on the current carrier thread.
    Type: Grant
    Filed: April 23, 2019
    Date of Patent: January 12, 2021
    Assignee: Oracle International Corporation
    Inventors: Christopher J. Plummer, Serguei Vladimirovich Spitsyn
  • Patent number: 10891213
    Abstract: Providing debugging support for a carried thread are disclosed. A debug agent converts between identifiers of carried threads and carrier threads. Further, a debug agent transfers debug configurations amongst multiple carrier threads associated with a same carried thread. With respect to identifier conversion, an agent receives, from a debuggee, a notification that an event occurred in association with a carrier thread. The agent determines that a carried thread is mounted on the carrier thread. The agent transmits, to the debugger, a notification that the event occurred in association with the carried thread.
    Type: Grant
    Filed: April 23, 2019
    Date of Patent: January 12, 2021
    Assignee: Oracle International Corporation
    Inventors: Christopher J. Plummer, Serguei Vladimirovich Spitsyn
  • Publication number: 20200341885
    Abstract: Providing debugging support for a carried thread are disclosed. A debug agent converts between identifiers of carried threads and carrier threads. Further, a debug agent transfers debug configurations amongst multiple carrier threads associated with a same carried thread. With respect to debug configuration transfers, an agent receives, from a debugger, a command to set an active debug configuration for a carrier thread on which a carried thread is mounted. Responsive to determining that the carried thread is unmounted, the agent stores the active debug configuration for the carrier thread as a recorded debug configuration associated with the carried thread. The agent transmits a command to reset the active debug configuration on the carrier thread. Responsive to determining that the carried thread is mounted on a carrier thread, the agent retrieves the recorded debug configuration. The agent restores the recorded debug configuration as an active debug configuration on the current carrier thread.
    Type: Application
    Filed: April 23, 2019
    Publication date: October 29, 2020
    Applicant: Oracle International Corporation
    Inventors: Christopher J. Plummer, Serguei Vladimirovich Spitsyn
  • Publication number: 20200341884
    Abstract: Providing debugging support for a carried thread are disclosed. A debug agent converts between identifiers of carried threads and carrier threads. Further, a debug agent transfers debug configurations amongst multiple carrier threads associated with a same carried thread. With respect to identifier conversion, an agent receives, from a debuggee, a notification that an event occurred in association with a carrier thread. The agent determines that a carried thread is mounted on the carrier thread. The agent transmits, to the debugger, a notification that the event occurred in association with the carried thread.
    Type: Application
    Filed: April 23, 2019
    Publication date: October 29, 2020
    Applicant: Oracle International Corporation
    Inventors: Christopher J. Plummer, Serguei Vladimirovich Spitsyn
  • Patent number: 8978023
    Abstract: A native application built for a mobile device can embed non-native JAVA code that may be executed by a JAVA virtual machine also embedded as a library within the native application. Enterprise applications may be extended for use by mobile devices. Business logic for an application may be constructed just once and then used in both enterprise applications and mobile device applications.
    Type: Grant
    Filed: October 22, 2012
    Date of Patent: March 10, 2015
    Assignee: Oracle International Corporation
    Inventors: Noel Poore, William Bruce Kilgore, Anki R. Nelaturu, Hinkmond B. Wong, Edward J. Farrell, Dov Zandman, Christopher J. Plummer, David Robert Martin, Denis J. Tyrell
  • Patent number: 8863126
    Abstract: A native application built for a mobile device can embed non-native JAVA code that may be executed by a JAVA virtual machine also embedded as a library within the native application. Enterprise applications may be extended for use by mobile devices. Business logic for an application may be constructed just once and then used in both enterprise applications and mobile device applications.
    Type: Grant
    Filed: October 22, 2012
    Date of Patent: October 14, 2014
    Assignee: Oracle International Corporation
    Inventors: Noel Poore, William Bruce Kilgore, Anki R. Nelaturu, Hinkmond B. Wong, Edward J. Farrell, Dov Zandman, Christopher J. Plummer, David Robert Martin, Denis J. Tyrell
  • Patent number: 8856805
    Abstract: A native application built for a mobile device can embed non-native JAVA code that may be executed by a JAVA virtual machine also embedded as a library within the native application. Enterprise applications may be extended for use by mobile devices. Business logic for an application may be constructed just once and then used in both enterprise applications and mobile device applications.
    Type: Grant
    Filed: October 22, 2012
    Date of Patent: October 7, 2014
    Assignee: Oracle International Corporation
    Inventors: Noel Poore, William Bruce Kilgore, Anki R. Nelaturu, Hinkmond B. Wong, Edward J. Farrell, Dov Zandman, Christopher J. Plummer, David Robert Martin, Denis J. Tyrell
  • Publication number: 20130283251
    Abstract: A native application built for a mobile device can embed non-native JAVA code that may be executed by a JAVA virtual machine also embedded as a library within the native application. Enterprise applications may be extended for use by mobile devices. Business logic for an application may be constructed just once and then used in both enterprise applications and mobile device applications.
    Type: Application
    Filed: October 22, 2012
    Publication date: October 24, 2013
    Inventors: Noel Poore, William Bruce Kilgore, Anki R. Nelaturu, Hinkmond B. Wong, Ted J. Farrell, Dov Zandman, Christopher J. Plummer, David Robert Martin, Denis J. Tyrell
  • Publication number: 20130283294
    Abstract: A native application built for a mobile device can embed non-native JAVA code that may be executed by a JAVA virtual machine also embedded as a library within the native application. Enterprise applications may be extended for use by mobile devices. Business logic for an application may be constructed just once and then used in both enterprise applications and mobile device applications.
    Type: Application
    Filed: October 22, 2012
    Publication date: October 24, 2013
    Inventors: Noel Poore, William Bruce Kilgore, Anki R. Nelaturu, Hinkmond B. Wong, Ted J. Farrell, Dov Zandman, Christopher J. Plummer, David Robert Martin, Denis J. Tyrell
  • Patent number: 8176491
    Abstract: A mechanism is disclosed for implementing fast synchronization of simple synchronized methods in a virtual machine. The mechanism provides for determining, during runtime, whether a set of instructions can be fully executed in lieu of invoking a synchronized method, which requires locking of a particular object. The set of instructions provides equivalent functionality to the synchronized method but with less locking overhead. In response to a determination that the set of instructions can be fully executed, the set of instructions is fully executed to achieve equivalent functionality to the synchronized method in lieu of invoking the synchronized method. In response to a determination that the set of instructions cannot be fully executed, the synchronized method is invoked. With this mechanism, simple synchronized methods can be executed with less locking overhead.
    Type: Grant
    Filed: August 4, 2006
    Date of Patent: May 8, 2012
    Assignee: Oracle America, Inc.
    Inventors: Christopher J. Plummer, Yin Zin Mark Lam
  • Patent number: 8099724
    Abstract: A patch-based mechanism is disclosed for providing fast invocations of a target method from a compiled calling method. The code for the calling method is stored into a storage. The code for the calling method comprises an instruction for invoking the target method, where the instruction comprises a parameter. In response to a state change from a current state to a new state that is experienced by the target method, the parameter is modified from a first value to a second value, where the second value indicates the correct address for facilitating the execution of the target method in its new state. Thus, the parameter in the instruction for invoking the target method always reflects the correct state of the target method, which provides for a fast invocation of the target method when the instruction is executed.
    Type: Grant
    Filed: February 28, 2006
    Date of Patent: January 17, 2012
    Assignee: Oracle America, Inc.
    Inventor: Christopher J. Plummer
  • Patent number: 7788655
    Abstract: A compilation mechanism is disclosed for facilitating the keeping of local variables in the same hardware registers across multiple code blocks. In one implementation, each code block has a list of local variables associated therewith. This list of local variables represents the local variables that should be loaded into registers prior to entering a code block. For multiple code blocks, the various lists may have local variables in common. In one implementation, the mechanism orders the local variables in the various lists in such a manner that, as much as possible, the same local variables are placed in the same slots of the various lists. By doing so, the mechanism minimizes the movement of local variables from register to register when going from code block to code block.
    Type: Grant
    Filed: August 30, 2005
    Date of Patent: August 31, 2010
    Assignee: Oracle America, Inc.
    Inventor: Christopher J. Plummer
  • Patent number: 7770169
    Abstract: Techniques for assuring thread rendezvous for a plurality of threads executing in a computing system are disclosed. Techniques can be used to assure thread rendezvous for read-only code in a manner that is more efficient than polling techniques. A Light-weight, Yet Trappable On Demand (LYTOD) instruction can be generated for code that is executed by one or more threads. Typically, a LYTOD instruction is generated at critical points of the code in order to assure safe-point thread rendezvous. The LYTOD is a lightweight instruction that can change its behavior from a lightweight instruction to an instruction that causes a trap when executed. The LYTOD can, for example, be implemented as a read-from-memory instruction that operates to load a register with a content of a valid memory location.
    Type: Grant
    Filed: May 17, 2004
    Date of Patent: August 3, 2010
    Assignee: Oracle America, Inc.
    Inventors: Nedim Fresko, Christopher J. Plummer, Dean R. Long
  • Patent number: 7647586
    Abstract: A system and method for providing exceptional flow control in protected code through watchpoints is described. Code is generated. The generated code includes a sequence of normal operations and is subject to protection against copying during execution of the generated code. Execution points within the generated code are identified. A watchpoint corresponding to each of the execution points is set. An exception handler associated with each watchpoint is defined and includes operations exceptional to the normal operations sequence that are performed upon a triggering of each watchpoint during execution of the generated code.
    Type: Grant
    Filed: August 13, 2004
    Date of Patent: January 12, 2010
    Assignee: Sun Microsystems, Inc.
    Inventors: Dean R. E. Long, Christopher J. Plummer, Nedim Fresko
  • Patent number: 7472383
    Abstract: A system and method for providing exceptional flow control in protected code through memory layers. Code is generated. The generated code includes a sequence of normal operations and is subject to protection against copying during execution of the generated code. The generated code is instantiated as a master process into a master layer in a memory space. The master process is cloned by instantiating a copy of the master process as a child layer in the memory space. Execution points within the generated code are identified. A copy of at least a portion of the generated code containing each execution point as an exception layer is instantiated in the memory space. The generated code in the exception layer is patched at each identified execution point with operations exceptional to the normal operations sequence and which are performed upon a triggering of each execution point during execution of the generated code.
    Type: Grant
    Filed: August 13, 2004
    Date of Patent: December 30, 2008
    Assignee: Sun Microsystems, Inc.
    Inventors: Dean R. E. Long, Nedim Fresko, Christopher J. Plummer
  • Patent number: 7055133
    Abstract: Methods and apparatus for eliminating C recursion from interpreter loops are disclosed. According to one aspect of the present invention, a computer-implemented method for substantially eliminating C recursion from the execution of static initializer methods in a virtual machine environment includes rewriting native C code associated with a static initializer as a Java programming language method, and using a transition frame in a Java programming language stack to execute the Java programming language method. The method also includes using a native method to manipulate the Java programming language stack, and using a first opcode in the transition frame. In one embodiment, using the first opcode in the transition frame includes using the first opcode to determine that the transition frame is associated with the static initializer.
    Type: Grant
    Filed: April 12, 2005
    Date of Patent: May 30, 2006
    Assignee: Sun Microsystems, Inc.
    Inventors: Christopher J. Plummer, Dean R. E. Long
  • Patent number: 6978448
    Abstract: Methods and apparatus for reducing the number of runtime checks performed during the execution of a virtual machine. According to one aspect of the present invention, a computer system includes a preloader, a compiler, and a virtual machine. The preloader is arranged to determine whether a bytecode makes an active reference to a class which requires an execution of a static initializer, and is also arranged to determine if the class has a superclass which requires the execution of the static initializer. The compiler is arranged to accept a source file generated by the preloader as input and to produce an object file, and the virtual machine is arranged to execute the object file.
    Type: Grant
    Filed: April 24, 2001
    Date of Patent: December 20, 2005
    Assignee: Sun Microsystems, Inc.
    Inventors: Christopher J. Plummer, Nedim Fresko, Richard D. Tuck
  • Patent number: 6915508
    Abstract: Methods and apparatus for eliminating C recursion from interpreter loops are disclosed. According to one aspect of the present invention, a computer-implemented method for substantially eliminating C recursion from the execution of static initializer methods in a virtual machine environment includes rewriting native C code associated with a static initializer as a Java™ method, and using a transition frame in a Java™ stack to execute the Java™ method. The method also includes using a native method to manipulate the Java™ stack, and using a first opcode in the transition frame. In one embodiment, using the first opcode in the transition frame includes using the first opcode to determine that the transition frame is associated with the static initializer. In another embodiment, the method further includes causing the static initializer to run, wherein the static initializer using a second opcode, and resuming execution at the second opcode after the static initializer has run.
    Type: Grant
    Filed: April 24, 2001
    Date of Patent: July 5, 2005
    Assignee: Sun Microsystems, Inc.
    Inventors: Christopher J. Plummer, Dean R. E. Long
  • Patent number: 6886157
    Abstract: Methods, apparatus and computer program products are disclosed for a method of invoking a native method in a Java virtual machine (“JVM”). A special-purpose fast interface, executing in conjunction with an interpreter loop, for native methods reduces C stack recursion in the JVM. The interface performs as an extension to the interpreter loop component in the JVM in that a native method, invoked via the special-purpose interface, is able to modify the interpreter loop state if necessary. This is done without adding new bytecode instructions. A method of executing a native method in a Java virtual machine is described. The JVM first determines whether a native method is to be handled by a special native interface or one of multiple other native interfaces. If it is determined that the method is to be handled by the special native interface, the method is invoked and passed arguments enabling it to access the state of the JVM. The method is then executed.
    Type: Grant
    Filed: May 25, 2001
    Date of Patent: April 26, 2005
    Assignee: Sun Microsystems, Inc.
    Inventors: Dean R. E. Long, Christopher J. Plummer, Nedim Fresko
  • Patent number: 6836782
    Abstract: Methods and apparatus for efficiently enabling garbage collectors to be swapped into and out of virtual machine environments are disclosed. According to one aspect of the present invention, an interface for reclaiming memory in a multi-threaded virtual machine environment that has a virtual machine includes a first module that is associated with the virtual machine and a second module that is separate from the first module but interfaces with the first module. The first module includes a first routine for initiating a garbage collection process within the virtual machine environment, a second routine for scanning roots associated with the virtual machine environment, and a third routine for following roots through objects associated with the virtual machine environment.
    Type: Grant
    Filed: April 17, 2001
    Date of Patent: December 28, 2004
    Assignee: Sun Microsystems, Inc.
    Inventors: Nedim Fresko, Dean R. E. Long, Christopher J. Plummer