Patents by Inventor John J. Duffy
John J. Duffy 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).
-
Publication number: 20240093878Abstract: A cooking appliance includes a cooktop and a burner mounted on the cooktop. At least one coupling member is coupled to the cooktop. A grate, a griddle, or a reversible griddle is selectively coupled to the at least one coupling member and is operable between a raised position and a lowered position when the grate, the griddle, or the reversible griddle, is engaged with the coupling member.Type: ApplicationFiled: November 29, 2023Publication date: March 21, 2024Applicant: WHIRLPOOL CORPORATIONInventors: Alexandre Machado Bardal, Randall Vernen Crawford, Patrick J. Duffy, Ken E. Johnson, Michele Harpring Johnson, John Ryan McNally, Paul J. Neuman, Gaston A. Leoni, Leonardo Portilho Soares, Sarah Katherine Small
-
Patent number: 11113190Abstract: A computing device implemented method for building a mutable type is disclosed. A data structure is generated in a contiguous section of memory. The data structure includes an element portion and an over-allocation portion. The element portion stores elements accessible with an index. A gap object is inserted into the over-allocation portion. The gap object is garbage collected.Type: GrantFiled: November 11, 2016Date of Patent: September 7, 2021Assignee: Microsoft Technology Licensing, LLCInventors: John J. Duffy, Krzysztof J. Cwalina, Matthew G. Ellis
-
Patent number: 10901808Abstract: Fine-grained parallelism within isolated object graphs is used to provide safe concurrent operations within the isolated object graphs. One example provides an abstraction labeled IsolatedObjectGraph that encapsulates at least one object graph, but often two or more object graphs, rooted by an instance of a type member. By encapsulating the object graph, no references from outside of the object graph are allowed to objects inside of the object graph. Also, the encapsulated object graph does not contain references to objects outside of the graphs. The isolated object graphs provide for safe data parallel operations, including safe data parallel mutations such as foreach loops. In an example, the ability to isolate the object graph is provided through type permissions.Type: GrantFiled: February 2, 2017Date of Patent: January 26, 2021Assignee: Microsoft Technology Licensing, LLCInventors: John J. Duffy, Niklas Gustafsson, Vance Morrison
-
Publication number: 20180137049Abstract: A computing device implemented method for building a mutable type is disclosed. A data structure is generated in a contiguous section of memory. The data structure includes an element portion and an over-allocation portion. The element portion stores elements accessible with an index. A gap object is inserted into the over-allocation portion. The gap object is garbage collected.Type: ApplicationFiled: November 11, 2016Publication date: May 17, 2018Applicant: Microsoft Technology Licensing, LLCInventors: John J. Duffy, Krzysztof J. Cwalina, Matthew G. Ellis
-
Patent number: 9971578Abstract: The annotation of a returned reference from an executable component to signify that there are no external references to the particular object graph referenced by the returned reference. If either 1) there are no input arguments to the executable component or 2) each input argument is either immutable or represents an object graph that has no external mutable references pointing into the object graph, and no internal mutable references that reference external objects, the particular attribute is assigned to the returned reference. Accordingly, if the returned reference is writable (as determined by evaluating the declaration code or the call code for the executable component), the returned reference is free to have whatever access permissions assigned to it, and may also be assigned to an isolated memory location, though such assignments will cause the returned reference to lose the particular attribute.Type: GrantFiled: October 15, 2012Date of Patent: May 15, 2018Assignee: Microsoft Technology Licensing, LLCInventors: John J. Duffy, Jared P. Parsons, Michael Sinz, Alexander D. Bromfield
-
Patent number: 9928105Abstract: A parallel execution runtime prevents stack overflow by maintaining an inline counter for each thread executing tasks of a process. Each time that the runtime determines that inline execution of a task is desired on a thread, the runtime determines whether the inline counter for the corresponding thread indicates that stack overflow may occur. If not, the runtime increments the inline counter for the thread and allows the task to be executed inline. If the inline counter indicates a risk of stack overflow, then the runtime performs additional one or more checks using a previous stack pointer of the stack (i.e., a lowest known safe watermark), the current stack pointer, and memory boundaries of the stack. If the risk of stack overflow remains after all checks have been performed, the runtime prevents inline execution of the task.Type: GrantFiled: June 28, 2010Date of Patent: March 27, 2018Assignee: Microsoft Technology Licensing, LLCInventors: Huseyin S. Yildiz, John J. Duffy
-
Patent number: 9740460Abstract: A language extension that advances safety in system programming in that an entire type may be declared to be immutable in the case in which all instances of that type are immutable. The immutable type declaration automatically causes any instances of that type to be treated as immutable, and automatically causes all directly or indirectly reachable members (e.g., fields, methods, properties) of the instance to also be treated as immutable. Furthermore, any construction time reference that allows for field assignment of the instance is not permitted to survive beyond the point at which the instance becomes accessible to its creator. Accordingly, this instance, and any other instance of that same type, will be immutable from the very time of construction. The ability to classify all such instances as immutable is beneficial as the immutable characteristic permits actions that normally would not be allowed due to resource access safety.Type: GrantFiled: June 25, 2015Date of Patent: August 22, 2017Assignee: Microsoft Technology Licensing, LLCInventors: John J. Duffy, Jared Porter Parsons, Michael Sinz, Aleksandra Nadia Culver, Krzysztof J. Cwalina
-
Publication number: 20170147412Abstract: Fine-grained parallelism within isolated object graphs is used to provide safe concurrent operations within the isolated object graphs. One example provides an abstraction labeled IsolatedObjectGraph that encapsulates at least one object graph, but often two or more object graphs, rooted by an instance of a type member. By encapsulating the object graph, no references from outside of the object graph are allowed to objects inside of the object graph. Also, the encapsulated object graph does not contain references to objects outside of the graphs. The isolated object graphs provide for safe data parallel operations, including safe data parallel mutations such as foreach loops. In an example, the ability to isolate the object graph is provided through type permissions.Type: ApplicationFiled: February 2, 2017Publication date: May 25, 2017Applicant: Microsoft Technology Licensing, LLCInventors: John J. Duffy, Niklas Gustafsson, Vance Morrison
-
Patent number: 9569282Abstract: Fine-grained parallelism within isolated object graphs is used to provide safe concurrent operations within the isolated object graphs. One example provides an abstraction labeled IsolatedObjectGraph that encapsulates at least one object graph, but often two or more object graphs, rooted by an instance of a type member. By encapsulating the object graph, no references from outside of the object graph are allowed to objects inside of the object graph. Also, the encapsulated object graph does not contain references to objects outside of the graphs. The isolated object graphs provide for safe data parallel operations, including safe data parallel mutations such as for each loops. In an example, the ability to isolate the object graph is provided through type permissions.Type: GrantFiled: April 24, 2009Date of Patent: February 14, 2017Assignee: Microsoft Technology Licensing, LLCInventors: John J. Duffy, Niklas Gustafsson, Vance Morrison
-
Patent number: 9418175Abstract: An enumerable concurrent data structure referred to as a concurrent bag is provided. The concurrent bag is accessible by concurrent threads and includes a set of local lists configured as a linked list and a dictionary. The dictionary includes an entry for each local list that identifies the thread that created the local list and the location of the local list. Each local list includes a set of data elements configured as a linked list. A global lock on the concurrent bag and local locks on each local list allow operations that involve enumeration to be performed on the concurrent bag.Type: GrantFiled: March 31, 2009Date of Patent: August 16, 2016Assignee: Microsoft Technology Licensing, LLCInventors: Emad Omara, John J. Duffy
-
Patent number: 9411635Abstract: Various technologies and techniques are disclosed for supporting parallel nested transactions in a transactional memory system. Multiple closed nested transactions are created for a single parent transaction, and the closed nested transactions are executed concurrently as parallel nested transactions. Various techniques are used to ensure effects of the parallel nested transactions are hidden from other transactions outside the parent transaction until the parent transaction commits. For example, retry is allowed to work correctly with parallel nested transactions. When a transaction that is a parallel nested transaction or a child transaction of the parallel nested transaction executes a retry, a read set of the transaction is registered for the retry. When a decision is made to propagate the retry past a parallel nested transaction parent of the transaction, keeping the read set registered and making the read set part of a parent read set.Type: GrantFiled: September 18, 2012Date of Patent: August 9, 2016Assignee: Microsoft Technology Licensing, LLCInventors: Michael M. Magruder, David Detlefs, John J. Duffy, Goetz Graefe, Vinod K. Grover
-
Patent number: 9286039Abstract: A front-end compiler compiles source code into intermediate code, that may later be compiled into binary code. The source code defines an execution scope and includes a contract. When a contract is encountered at runtime of an execution scope, further execution of that execution scope is conditioned on whether a predicate associated with the contract is true. The front-end compiler operates so as to preserve the contract so that the contract continues to be semantically structured such that the predicate may be removed from the intermediate language code. The contract may thus continue to be understood by semantic analysis of the contract. Thus, the predicate may be understood by static analysis tools that operate on the intermediate code.Type: GrantFiled: March 14, 2013Date of Patent: March 15, 2016Assignee: Microsoft Technology Licensing, LLCInventors: John J. Duffy, Jared Porter Parsons, Colin Stebbins Gordon, Alexander Daniel Bromfield, Martin Taillefer, David Allen Bartolomeo, Michael Barnett
-
Patent number: 9229959Abstract: The type definition of particular types such that different portions of the corresponding object graph may have different permissions assigned to those portions during instantiation. This allows structured permissions to be applied to instantiations of the object graphs of those defined types, allowing fine grained control over what access permissions are enforced against which portions of the object graph. In some embodiments, different instantiations of the object graph may apply permissions differently.Type: GrantFiled: January 4, 2013Date of Patent: January 5, 2016Assignee: Microsoft Technology Licensing, LLCInventors: G. Shon Katzenberger, Jared Porter Parsons, Alexander Daniel Bromfield, John J. Duffy, Krzysztof J. Cwalina
-
Patent number: 9189446Abstract: The environment and use of an immutable buffer. A computing entity acquires data or generates data and populates the data into the buffer, after which the buffer is classified as immutable. The classification protects the data populated within the immutable buffer from changing during the lifetime of the immutable buffer, and also protects the immutable buffer from having its physical address changed during the lifetime of the immutable buffer. As different computing entities consume data from the immutable buffer, they do so through views provided by a view providing entity. The immutable buffer architecture may also be used for streaming data in which each component of the streaming data uses an immutable buffer. Accordingly, different computing entities may view the immutable data differently without having to actually copy the data.Type: GrantFiled: January 4, 2013Date of Patent: November 17, 2015Assignee: Microsoft Technology Licensing, LLCInventors: Jason Todd Hunter, Jinsong Yu, Martin Taillefer, Gregory Michael Neverov, Dmitry Kakurin, Ahmed Hassan Mohamed, John J. Duffy, Christopher Wellington Brumme, F. Soner Terek
-
Publication number: 20150324175Abstract: A language extension that advances safety in system programming in that an entire type may be declared to be immutable in the case in which all instances of that type are immutable. The immutable type declaration automatically causes any instances of that type to be treated as immutable, and automatically causes all directly or indirectly reachable members (e.g., fields, methods, properties) of the instance to also be treated as immutable. Furthermore, any construction time reference that allows for field assignment of the instance is not permitted to survive beyond the point at which the instance becomes accessible to its creator. Accordingly, this instance, and any other instance of that same type, will be immutable from the very time of construction. The ability to classify all such instances as immutable is beneficial as the immutable characteristic permits actions that normally would not be allowed due to resource access safety.Type: ApplicationFiled: June 25, 2015Publication date: November 12, 2015Inventors: John J. Duffy, Jared Porter Parsons, Michael Sinz, Alexander Daniel Bromfield, Krzysztof J. Cwalina
-
Patent number: 9141422Abstract: A parallel execution runtime allows tasks to be executed concurrently in a runtime environment. The parallel execution runtime delegates the implementation of task queuing, dispatch, and thread management to one or more plug-in schedulers in a runtime environment of a computer system. The plug-in schedulers may be provided by user code or other suitable sources and include interfaces that operate in conjunction with the runtime. The runtime tracks the schedulers and maintains control of all aspects of the execution of tasks from user code including task initialization, task status, task waiting, task cancellation, task continuations, and task exception handling.Type: GrantFiled: May 18, 2010Date of Patent: September 22, 2015Assignee: Microsoft Technology Licensing, LLCInventors: Stephen H. Toub, Huseyin S. Yildiz, Joseph E. Hoag, John J. Duffy, Danny Shih
-
Patent number: 9098269Abstract: A language extension that advances safety in system programming in that an entire type may be declared to be immutable in the case in which all instances of that type are immutable. The immutable type declaration automatically causes any instances of that type to be treated as immutable, and automatically causes all directly or indirectly reachable members (e.g., fields, methods, properties) of the instance to also be treated as immutable. Furthermore, any construction time reference that allows for field assignment of the instance is not permitted to survive beyond the point at which the instance becomes accessible to its creator. Accordingly, this instance, and any other instance of that same type, will be immutable from the very time of construction. The ability to classify all such instances as immutable is beneficial as the immutable characteristic permits actions that normally would not be allowed due to resource access safety.Type: GrantFiled: January 4, 2013Date of Patent: August 4, 2015Assignee: Microsoft Technology Licensing, LLCInventors: John J. Duffy, Jared Porter Parsons, Michael Sinz, Alexander Daniel Bromfield, Krzysztof J. Cwalina
-
Patent number: 8997101Abstract: Embodiments described herein are directed to dynamically controlling the number of spins for a selected processing thread among a plurality of processing threads. A computer system tracks both the number of waiting processing threads and each thread's turn, wherein a selected thread's turn comprises the total number of waiting processing threads after the selected thread's arrival at the processor. Next, the computer system determines, based on the selected thread's turn, the number of spins that are to occur before the selected thread checks for an available thread lock. The computer system also, based on the selected thread's turn, changes the number of spins, such that the number of spins for the selected thread is a function of the number of waiting processing threads and processors in the computer system.Type: GrantFiled: March 4, 2014Date of Patent: March 31, 2015Assignee: Microsoft CorporationInventors: Emad A. Omara, John J. Duffy
-
Publication number: 20140282448Abstract: A front-end compiler compiles source code into intermediate code, that may later be compiled into binary code. The source code defines an execution scope and includes a contract. When a contract is encountered at runtime of an execution scope, further execution of that execution scope is conditioned on whether a predicate associated with the contract is true. The front-end compiler operates so as to preserve the contract so that the contract continues to be semantically structured such that the predicate may be removed from the intermediate language code. The contract may thus continue to be understood by semantic analysis of the contract. Thus, the predicate may be understood by static analysis tools that operate on the intermediate code.Type: ApplicationFiled: March 14, 2013Publication date: September 18, 2014Applicant: MICROSOFT CORPORATIONInventors: John J. Duffy, Jared Porter Parsons, Colin Stebbins Gordon, Alexander Daniel Bromfield, Martin Taillefer, David Allen Bartolomeo, Michael Barnett
-
Publication number: 20140195862Abstract: Handing errors in program execution. The method includes identifying a set including a plurality of explicitly identified failure conditions. The method further includes determining that one or more of the explicitly identified failure conditions has occurred. As a result, the method further includes halting a predetermined first execution scope of computing, and notifying another scope of computing of the failure condition. An alternative embodiment may be practiced in a computing environment, and includes a method handing errors. The method includes identifying a set including a plurality of explicitly identified failure conditions. The method further includes determining that an error condition has occurred that is not in the set including a plurality of explicitly identified failure conditions. As a result, the method further includes halting a predetermined first execution scope of computing, and notifying another scope of computing of the failure condition.Type: ApplicationFiled: January 4, 2013Publication date: July 10, 2014Applicant: MICROSOFT CORPORATIONInventors: Martin Taillefer, Jinsong Yu, John J. Duffy, Sean E. Trowbridge, Alexander D. Bromfield