IP Library Granted Patent US 8,527,456
Granted Patent B2
US 8,527,456 · App. 13/431,970 · Granted Sep 3, 2013

Interprocess communication using a single semaphore

Inventor: Peter Douglas Bain (Ottawa, CA)
Assignee: International Business Machines Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,527,456
App. No.
13/431,970
Granted
Sep 3, 2013
Kind
B2
Abstract

A method to enable communication between software processes includes initiating a plurality of processes, the processes including both attachment processes and target processes. A single semaphore is created and initialized for use by the plurality of processes such that each of the target processes wait on the semaphore. An attachment process writes a message file, identifying a specific target process, to a location accessible by the target processes. The attachment process then increments the semaphore by the number of target processes, thereby unblocking the target processes and allowing them to check the message file. When the specific target process determines that the message file is intended for that target, a connection is established between the attachment process and the specific target process. The attachment process then decrements the semaphore to zero to block the target processes. A corresponding computer program product and apparatus are also disclosed herein.

Claims (14)

1. A method for enabling communication between a plurality of processes, the method comprising:

initiating a plurality of processes, the plurality of processes comprising both attachment processes and target processes;

creating and initializing a single semaphore for use by the plurality of processes, such that each of the target processes are initially blocked by the semaphore;

writing, by an attachment process, a message file to a location readable by each of the target processes and identifying a specific target process with which the attachment process wants to establish a connection;

incrementing, by the attachment process, the semaphore by the number of target processes, thereby unblocking each of the target processes and allowing each of the target processes to read the message file and thereby determine if it is the target process identified in the message file;

establishing a connection between the attachment process and the specific target process identified in the message file; and

decrementing the semaphore to zero, thereby blocking each of the target processes.

2. The method of claim 1 , wherein, prior to incrementing the semaphore, the attachment process locks synchronization files associated with each of the target processes.

3. The method of claim 2 , wherein, after decrementing the semaphore to zero, the attachment process unlocks the synchronization files associated with each of the target processes.

4. The method of claim 1 , wherein, prior to incrementing the semaphore, the attachment process locks a master lock file to prevent races with other attachment processes.

5. The method of claim 4 , wherein, after decrementing the semaphore to zero, the attachment process unlocks the master lock file.

6. The method of claim 1 , wherein each of the plurality of processes is associated with a Java Virtual Machine.

7. The method of claim 1 , wherein establishing a connection further comprises establishing an API connection.

8. The method of claim 1 , wherein establishing a connection further comprises instructing the specific target process to load one or more tool agents.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2021
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: AIRBNB, INC.
Reel/Frame 056427/0193 →
Continuity (2)
Continuation 12838341 · Jul 16, 2010
Related Publication 20120185875A1 · Jul 19, 2012