IP Library Granted Patent US 9,542,235
Granted Patent B2
US 9,542,235 · App. 12/967,430 · Granted Jan 10, 2017

Process-safe read/write locks

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 9,542,235
App. No.
12/967,430
Granted
Jan 10, 2017
Kind
B2
Abstract

In one embodiment, a non-transitory processor-readable medium stores code representing instructions that when executed cause a processor to obtain a first mutual exclusion object. The first mutual exclusion object can be a write mutual exclusion object associated with a shared resource. The code can further represent instructions that when executed cause the processor to obtain a second mutual exclusion object associated with an object manager module and define a read event object with a name conforming to a predetermined format. The code can further represent instructions that when executed cause the processor to release the second mutual exclusion object, release the first mutual exclusion object, read at least a portion of the shared resource, obtain the second mutual exclusion object, destroy the read event object and release the second mutual exclusion object.

Claims (33)

1. A non-transitory processor-readable medium storing code representing instructions to cause a processor to:

obtain exclusive access to a first mutual exclusion object, the first mutual exclusion object associated with a shared resource;

obtain, at a first time, exclusive access to a second mutual exclusion object, the second mutual exclusion object associated with an object manager module configured to instantiate a read event object in response to obtaining exclusive access to the second mutual exclusion object, the object manager module configured to add the read event object to a set of read event objects associated with the shared resource;

release the first mutual exclusion object and the second mutual exclusion object after the read event object has been instantiated;

obtain, at a second time, exclusive access to the first mutual exclusion object and the second mutual exclusion object;

receive, from the object manager module and after obtaining exclusive access to the second mutual exclusion object at the second time, a count value calculated, by the object manager module, based on a number of read event objects in the set of read event objects;

release the second mutual exclusion object;

write one or more bits to the shared resource when the count value satisfies a criterion; and

release the first mutual exclusion object in response to writing the one or more bits to the shared resource.

2. The non-transitory processor-readable medium of claim 1 , wherein each read event object from the set of read event objects is a kernel object and has a name conforming to a predetermined format.

3. The non-transitory processor-readable medium of claim 1 , the code further comprising code representing instructions to cause the processor to:

determine, in response to receiving the count value at the second time, that the count value at the second time does not satisfy the criterion;

receive, from the object manager module, the count value at a third time after the second time; and

determine that the count value at the third time satisfies the criterion, the code to cause the processor to write includes code to cause the processor to write the one or more bits to the shared resource.

4. The non-transitory processor-readable medium of claim 1 , further comprising code representing instructions to cause the processor to:

remain in an idle state when the count value does not satisfy the criterion.

5. The non-transitory processor-readable medium of claim 1 , wherein the shared resource is at least one of a data file, a buffer or a database record.

6. The non-transitory processor-readable medium of claim 1 , wherein the count value satisfies the criterion based at least in part on an unexpected reader process termination.

7. The non-transitory processor-readable medium of claim 1 , wherein the count value satisfies the criterion when the count value equals zero.

8. An apparatus, comprising:

an object manager module implemented in at least one of a memory or a processing device, the object manager module configured to instantiate at least one read event object in response to receiving a read request for a shared resource from at least one application process, the object manager module configured to calculate a count value based at least in part on a number of instantiated read event objects; and

a lock module configured to provide an application module exclusive access to a write mutual exclusion object associated with the shared resource in response to receiving a request for exclusive access to the shared resource from the application module, the lock module configured to provide the application module exclusive access to an object manager mutual exclusion object associated with the object manager module in response to receiving a request for exclusive access to the object manager module from the application module,

the object manager module configured to send, to the application module and based on the application module having exclusive access to the object manager mutual exclusion object at a time, the count value such that the application module writes one or more bits to the shared resource when the count value satisfies a criterion,

the lock module configured to release exclusive access of the application module to the object manager mutual exclusion object in response to receiving an indication that the application module received the count value, the lock module configured to release exclusive access of the application module to the write mutual exclusion object in response to receiving an indication that the application module has written the one or more bits to the shared resource.

9. The apparatus of claim 8 , wherein each read event object from the set of read event objects is a kernel object and has a name conforming to a predetermined format.

10. The apparatus of claim 8 , wherein the lock module is a dynamic link library (DLL).

11. The apparatus of claim 8 , wherein the shared resource is at least one of a data file, a buffer or a database record.

12. The apparatus of claim 8 , wherein the object manager module is configured to send the count value such that the application module remains in an idle state when the count value does not satisfy the criterion.

13. The apparatus of claim 8 , wherein the count value satisfies the criterion when the number of read event objects in the set of read event objects equals zero.

14. The apparatus of claim 8 , wherein:

the object manager module is configured to determine a read access status of an application process from the at least one application process, and

the object manager module is configured to destroy at least one read event object associated with the application process if the read access status indicates the application process has unexpectedly terminated.

15. The non-transitory processor-readable medium of claim 1 , wherein obtaining exclusive access to the second mutual exclusion object includes obtaining exclusive access to the object manager module.

Assignments (8)
CORRECTIVE ASSIGNMENT TO CORRECT THE PROPERTY 14633493 WHICH WAS ENTERED INCORRECTLY AS 14633793 PREVIOUSLY RECORDED ON REEL 71176 FRAME 315. ASSIGNOR(S) HEREBY CONFIRMS THE FIRST LIEN NEWCO SECURITY AGREEMENT. Recorded Nov 10, 2025
From: PULSE SECURE, LLC; IVANTI, INC.; IVANTI US LLC; IVANTI SECURITY HOLDINGS LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 073818/0515 →
FIRST LIEN NEWCO SECURITY AGREEMENT Recorded May 5, 2025
From: PULSE SECURE, LLC; IVANTI, INC.; IVANTI US LLC; IVANTI SECURITY HOLDINGS LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 071176/0315 →
SECURITY INTEREST Recorded May 2, 2025
From: IVANTI, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071164/0482 →
NOTICE OF SUCCESSION OF AGENCY FOR SECURITY INTEREST AT REEL/FRAME 054665/0873 Recorded Apr 29, 2025
From: BANK OF AMERICA, N.A., AS RESIGNING AGENT
To: ALTER DOMUS (US) LLC, AS SUCCESSOR AGENT
Reel/Frame 071123/0386 →
SECURITY INTEREST Recorded Dec 9, 2020
From: CELLSEC, INC.; PULSE SECURE, LLC; INVANTI, INC.; MOBILEIRON, INC.; INVANTI US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 054665/0873 →
SECURITY INTEREST Recorded Dec 9, 2020
From: CELLSEC, INC.; PULSE SECURE, LLC; IVANTI, INC.; MOBILEIRON, INC.; IVANTI US LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 054665/0062 →
RELEASE OF SECURITY INTEREST : RECORDED AT REEL/FRAME - 43971/0495 Recorded Dec 1, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: APPSENSE US LLC
Reel/Frame 054560/0278 →
RELEASE OF SECURITY INTEREST : RECORDED AT REEL/FRAME - 43971/0549 Recorded Dec 1, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: APPSENSE US LLC
Reel/Frame 054560/0389 →