Patents by Inventor Jainam Shah

Jainam Shah 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: 11940931
    Abstract: A turnstile OS primitive is provided that enables support for owner tracking and waiting. The turnstile primitive enables a common framework that can be adopted across multiple different types of synchronization primitives to provide a common service for priority boosting and wait queuing. A turnstile can also provide a mechanism to enable a turnstile to block on another turnstile, allowing multi-hop priority boosting within a chain of multiple blocking turnstiles.
    Type: Grant
    Filed: January 5, 2021
    Date of Patent: March 26, 2024
    Assignee: Apple Inc.
    Inventors: Jainam A. Shah, Jeremy C. Andrus, Daniel A. Chimene, Kushal Dalmia, Pierre Habouzit, James M. Magee, Marina Sadini, Daniel A. Steffen
  • Publication number: 20210157748
    Abstract: A turnstile OS primitive is provided that enables support for owner tracking and waiting. The turnstile primitive enables a common framework that can be adopted across multiple different types of synchronization primitives to provide a common service for priority boosting and wait queuing. A turnstile can also provide a mechanism to enable a turnstile to block on another turnstile, allowing multi-hop priority boosting within a chain of multiple blocking turnstiles.
    Type: Application
    Filed: January 5, 2021
    Publication date: May 27, 2021
    Inventors: Jainam A. Shah, Jeremy C. Andrus, Daniel A. Chimene, Kushal Dalmia, Pierre Habouzit, James M. Magee, Marina Sadini, Daniel A. Steffen
  • Patent number: 10901920
    Abstract: One embodiment provides for a computer-implemented method comprising instantiating a synchronization primitive to control access to a resource, acquiring the synchronization primitive at a first thread, the first thread having a first priority, associating a turnstile with the synchronization primitive, setting an inheritor of the turnstile to the first thread, attempting to acquire the synchronization primitive at a second thread while the synchronization primitive is held by the first thread, the second thread having a second priority, adding the second thread to a wait queue of the turnstile; and in response to determining that the second priority is higher than the first priority, increasing the priority of the first thread to the second priority.
    Type: Grant
    Filed: April 10, 2019
    Date of Patent: January 26, 2021
    Assignee: Apple Inc.
    Inventors: Jainam A. Shah, Jeremy C. Andrus, Daniel A. Chimene, Kushal Dalmia, Pierre Habouzit, James M. Magee, Marina Sadini, Daniel A. Steffen
  • Patent number: 10671430
    Abstract: Techniques are disclosed relating to inter-process communication. In some embodiments, a kernel receives a notification of a communication to be sent from a first thread of a first application to a second thread of a second application. The kernel provides a reply port to the first thread for receiving a reply to the communication from the second thread. The kernel facilitates sending the communication from the first thread to the second thread. The kernel increases an execution priority of the second thread in response to the kernel determining that the reply port and a destination port associated with the second thread are identified in the communication. In some embodiments, the kernel creates the reply port in response to receiving the notification and, in response to detecting the reply has been communicated to the reply port, decreases the execution priority of the second thread and removes the reply port.
    Type: Grant
    Filed: December 8, 2017
    Date of Patent: June 2, 2020
    Assignee: Apple Inc.
    Inventors: Daniel A. Steffen, Jainam A. Shah, James M. Magee, Jeremy C. Andrus, Russell A. Blaine
  • Patent number: 10599785
    Abstract: A system includes a plurality of sound devices, an electronic device having a serial port emulator configured to generate a serial port emulation corresponding to each of the plurality of sound devices, and a computer-readable storage medium having one or more programming instructions. The system receives compressed and encoded sound input from a first sound device via a serial port emulation associated with the first sound device. The sound input is associated with a first language. The system decodes and decompresses the compressed and encoded sound input to generate decompressed and decoded sound input, generates sound output by translating the decompressed and decoded sound input from the first language to a second language, compresses and encodes the sound output to generate compressed and encoded sound output, and transmits the compressed and encoded sound output to a second sound device via a serial port emulation associated with the second sound device.
    Type: Grant
    Filed: May 10, 2018
    Date of Patent: March 24, 2020
    Assignee: WAVERLY LABS INC.
    Inventors: William O. Goethals, Jainam Shah, Benjamin J. Carlson
  • Publication number: 20190370061
    Abstract: One embodiment provides for a computer-implemented method comprising instantiating a synchronization primitive to control access to a resource, acquiring the synchronization primitive at a first thread, the first thread having a first priority, associating a turnstile with the synchronization primitive, setting an inheritor of the turnstile to the first thread, attempting to acquire the synchronization primitive at a second thread while the synchronization primitive is held by the first thread, the second thread having a second priority, adding the second thread to a wait queue of the turnstile; and in response to determining that the second priority is higher than the first priority, increasing the priority of the first thread to the second priority.
    Type: Application
    Filed: April 10, 2019
    Publication date: December 5, 2019
    Inventors: Jainam A. Shah, Jeremy C. Andrus, Daniel A. Chimene, Kushal Dalmia, Pierre Habouzit, James M. Magee, Marina Sadini, Daniel A. Steffen
  • Patent number: 10430577
    Abstract: A method and an apparatus to dynamically distribute privileges among a plurality of processes are described. Each process may have attributes including a privilege to control access to processing resources. A first process may be running with a first privilege prohibited from access to a processing resource. A second process may be running with a second privilege allowed to access the processing resource. The first process may receive a request from the second process to perform a data processing task for the second process. In response, the second privilege may be dynamically transferred to the first process to allow the first process to access the processing resource. The first process may perform operations for the data processing task with the second privilege transferred from the second process.
    Type: Grant
    Filed: December 19, 2014
    Date of Patent: October 1, 2019
    Assignee: Apple Inc.
    Inventors: James Michael Magee, Russell A. Blaine, Vishal Patel, Daniel Andreas Steffen, Kevin James Van Vechten, Jacques Anthony Vidrine, Kelly B. Yancey, Jainam A. Shah
  • Publication number: 20180349181
    Abstract: Techniques are disclosed relating to inter-process communication. In some embodiments, a kernel receives a notification of a communication to be sent from a first thread of a first application to a second thread of a second application. The kernel provides a reply port to the first thread for receiving a reply to the communication from the second thread. The kernel facilitates sending the communication from the first thread to the second thread. The kernel increases an execution priority of the second thread in response to the kernel determining that the reply port and a destination port associated with the second thread are identified in the communication. In some embodiments, the kernel creates the reply port in response to receiving the notification and, in response to detecting the reply has been communicated to the reply port, decreases the execution priority of the second thread and removes the reply port.
    Type: Application
    Filed: December 8, 2017
    Publication date: December 6, 2018
    Inventors: Daniel A. Steffen, Jainam A. Shah, James M. Magee, Jeremy C. Andrus, Russell A. Blaine
  • Publication number: 20180329896
    Abstract: A system includes a plurality of sound devices, an electronic device having a serial port emulator configured to generate a serial port emulation corresponding to each of the plurality of sound devices, and a computer-readable storage medium having one or more programming instructions. The system receives compressed and encoded sound input from a first sound device via a serial port emulation associated with the first sound device. The sound input is associated with a first language. The system decodes and decompresses the compressed and encoded sound input to generate decompressed and decoded sound input, generates sound output by translating the decompressed and decoded sound input from the first language to a second language, compresses and encodes the sound output to generate compressed and encoded sound output, and transmits the compressed and encoded sound output to a second sound device via a serial port emulation associated with the second sound device.
    Type: Application
    Filed: May 10, 2018
    Publication date: November 15, 2018
    Inventors: William O. Goethals, Jainam Shah
  • Publication number: 20150347743
    Abstract: A method and an apparatus to dynamically distribute privileges among a plurality of processes are described. Each process may have attributes including a privilege to control access to processing resources. A first process may be running with a first privilege prohibited from access to a processing resource. A second process may be running with a second privilege allowed to access the processing resource. The first process may receive a request from the second process to perform a data processing task for the second process. In response, the second privilege may be dynamically transferred to the first process to allow the first process to access the processing resource. The first process may perform operations for the data processing task with the second privilege transferred from the second process.
    Type: Application
    Filed: December 19, 2014
    Publication date: December 3, 2015
    Inventors: James Michael Magee, Russell A. Blaine, Vishal Patel, Daniel Andreas Steffen, Kevin James Van Vechten, Jacques Anthony Vidrine, Kelly B. Yancey, Jainam A. Shah
  • Patent number: D908230
    Type: Grant
    Filed: January 7, 2019
    Date of Patent: January 19, 2021
    Assignee: Apex Neuro Holdings, Inc.
    Inventors: Zen Chu, Sean Hagberg, Francois Kress, Jainam Shah, Geoff Baldwin, Priyanka Venkatesh, Christopher Wright, Thomas Kershaw
  • Patent number: D922592
    Type: Grant
    Filed: May 31, 2019
    Date of Patent: June 15, 2021
    Assignee: Apex Neuro Holdings, Inc.
    Inventors: Zen Chu, Sean Hagberg, Francois Kress, Jainam Shah, Geoff Baldwin, Priyanka Venkatesh
  • Patent number: D922593
    Type: Grant
    Filed: May 31, 2019
    Date of Patent: June 15, 2021
    Assignee: Apex Neuro Holdings, Inc.
    Inventors: Zen Chu, Sean Hagberg, Francois Kress, Jainam Shah, Geoff Baldwin, Priyanka Venkatesh, Christopher Wright, Thomas Kershaw