Patent ID: 11880725
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
Field: Digital communication (Electrical engineering)
Classification: CPC G  H | IPC G

Claim 7:
8. A computing device, comprising:
a processing unit; and
a memory coupled to the processing unit and storing instructions, the instructions, when executed by the processing unit, performing acts comprising:
creating a first thread of a first application and a second thread of a second application and a third thread of the second application;
establishing, in a user space of an operating system, a socket connection between the first application and the second application, wherein the socket connection is shared by the first thread of the first application, the second thread of the second application, and the third thread of the second application, wherein the operating system includes virtual address space divided into a user space virtual address space for the user space and a kernel space virtual address space for a kernel of the operating system, and wherein the socket connection is established in the user space virtual address space, and wherein the socket connection is identified by a file descriptor;

maintaining, in a user space library, a file descriptor conversion table comprising a map of the first application and the second application to the file descriptor of the socket connection;
establishing, using the file descriptor and the file descriptor conversion table, a first dedicated shared memory queue for a first thread pair that comprises the first thread and the second thread and a second dedicated shared memory queue for a second thread pair that comprises the first thread and the third thread, the first dedicated shared memory queue providing dedicated access to the first thread of the first application and the second thread of the second application, and the second dedicated shared memory queue providing dedicated access to the first thread of the first application and the third thread of the second application;
in response to the first application initiating a system fork operation for creating a child process, creating, for the first application, a fourth thread corresponding to the first thread;
establishing a first new dedicated shared memory queue for the first thread pair and a second new dedicated shared memory queue for a third thread pair that comprises the fourth thread and the second thread; and
closing the first dedicated shared memory queue for the first thread pair.