IP Library Granted Patent US 8,402,301
Granted Patent B2
US 8,402,301 · App. 12/980,598 · Granted Mar 19, 2013

Delaying one-shot signal objects

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,402,301
App. No.
12/980,598
Granted
Mar 19, 2013
Kind
B2
Abstract

A device may include a processor to execute a thread. The processor may be further configured to execute a set of wrappers that are called from within the thread to invoke a set of one-shot signal objects to generate delayed signals. Each of the set of wrappers may be configured to detect whether different ones of one-shot signal objects that were invoked from within the thread have generated signals at periodic time intervals, determine a delay to be used for invoking one of the set of one-shot signal objects, and invoke the one of the set of one-shot signal object to generate one of the delayed signals based on the delay when the different ones of one-shot signal objects have generated signals at periodic time intervals. The processor may be further configured to receive the delayed signals generated from the set of one-shot signal objects over a time period.

Claims (87)

1. A method comprising:

determining, by a server device, whether a plurality of one-shot signal objects are periodically invoked;

determining, by the server device, a delay for the plurality of one-shot signal objects when the plurality of one-shot signal objects are periodically invoked;

invoking, by the server device, one of the plurality of one-shot signal objects based on the delay; and

removing, by the server device, the one of the plurality of one-shot signal objects from a memory of the server device after invoking the one of the plurality of one-shot signal objects.

2. The method of claim 1 , where determining the delay comprises:

selecting a delay object based on at least one of a user input or a default setting; and

determining the delay based on the delay object.

3. The method of claim 2 , where the delay is based on a probability distribution implemented by the delay object.

4. The method of claim 1 , further comprising:

allocating a signal information object to collect statistics of the plurality of one-shot signal objects,

where determining whether the plurality of one-shot signal objects are periodically invoked includes inspecting the signal information object; and

updating an argument of the signal information object based on the delay.

5. The method of claim 1 , further comprising:

detecting whether a system overload is present; and

using a delay object to determine the delay for the plurality of one-shot signal objects when the system overload is present.

6. The method of claim 1 ,

where the one of the plurality of one-shot signal objects comprises:

a one-shot timer, or

an event generator.

7. A non-transitory computer-readable medium storing instructions, the instructions comprising:

one or more instructions which, when executed by one or more processors of a device, cause the one or more processors to detect whether a first one-shot signal object and a second one-shot signal object generate signals at periodic intervals;

one or more instructions which, when executed by the one or more processors, cause the one or more processors to determine a delay time when the first one-shot signal object and the second one-shot signal object generate signals at periodic intervals;

one or more instructions which, when executed by the one or more processors, cause the one or more processors to invoke the first one-shot signal object based on the delay time; and

one or more instructions which, when executed by the one or more processors, cause the one or more processors to delete the first one-shot signal object from a memory of the device after invoking the first one-shot signal object.

8. The non-transitory computer-readable medium of claim 7 , where the one or more instructions to invoke the first one-shot signal object comprises at least one of:

one or more instructions to invoke the first one-shot signal object to generate a delayed signal based on the delay time; or

one or more instructions to invoke the first one-shot signal object to send the delayed signal.

9. The non-transitory computer-readable medium of claim 7 , where the one or more instructions to determine the delay time comprises:

one or more instructions to detect whether a system overload exists; and

one or more instructions to determine the delay time by using a delay object when the system overload exists.

10. The non-transitory computer-readable medium of claim 9 , where one or more instructions to determine the delay time using the delay object comprises:

one or more instructions to use a probability distribution implemented by the delay object.

11. A device comprising:

a memory to store instructions;

a processor to execute the instructions in the memory to:

detect whether a particular condition is met,

the particular condition being met when a plurality of one-shot signal objects are periodically invoked or signals are overloading the device,

determine a delay associated with the particular condition when the particular condition is met,

invoke one of the plurality of one-shot signal objects based on the delay, and

generate an error message when the signals are overloading the device.

12. The device of claim 11 , where, when invoking the one of the plurality of one-shot signal objects, the processor is further to:

inject the delay into the one of the plurality of one-shot signal objects, and

call the one of the plurality of one-shot signal objects.

13. The device of claim 11 , where the processor is further to:

create a signal information object, and

update the signal information object based on the delay.

14. A method comprising:

allocating, by a server device, a signal information object to collect statistics of a plurality of one-shot signal objects;

determining, by the server device, whether a plurality of one-shot signal objects are periodically invoked,

determining whether the plurality of one-shot signal objects are periodically invoked including:

inspecting the signal information object for the statistics of the plurality of one-shot signal objects collected by the signal information object;

determining, by the server device, a delay for the plurality of one-shot signal objects when the plurality of one-shot signal objects are periodically invoked; and

invoking, by the server device, one of the plurality of one-shot signal objects based on the delay.

15. The method of claim 14 , further comprising:

injecting the delay into the one of the plurality of one-shot signal objects; and

invoking the one of the plurality of one-shot signal objects after injecting the delay.

16. A device comprising:

a memory to store instructions;

a processor to execute the instructions in the memory to:

detect whether a particular condition is met,

the particular condition being met when a plurality of one-shot signal objects are periodically invoked,

when detecting whether the particular condition is met, the processor is further to:

determine whether the plurality of one-shot signal objects are periodically invoked based on statistics provided by a signal information object,

determine a delay associated with the particular condition when the particular condition is met,

when determining the delay, the processor is further to:

receive parameters, for taking corrective measures, from the signal information object, and

determine the delay based on the parameters, and

invoke one of the plurality of one-shot signal objects based on the delay.

17. The device of claim 16 , where the processor is further to:

create the signal information object to collect the statistics prior to detecting whether the particular condition is met,

where the statistics relate to the plurality of one-shot signal objects.

18. A non-transitory computer-readable medium storing instructions, the instructions comprising:

one or more instructions which, when executed by one or more processors of a device, cause the one or more processors to detect whether a particular condition is met,

the particular condition being met when a plurality of one-shot signal objects are periodically invoked;

one or more instructions which, when executed by the one or more processors, cause the one or more processors to determine a delay associated with the particular condition when the particular condition is met;

one or more instructions which, when executed by the one or more processors, cause the one or more processors to invoke one of the plurality of one-shot signal objects based on the delay;

one or more instructions which, when executed by the one or more processors, cause the one or more processors to receive a delayed signal from the one of the plurality of one-shot signal objects; and

one or more instructions which, when executed by the one or more processors, cause the one or more processors to invoke a callback object to handle the delayed signal.

19. A non-transitory computer-readable medium storing instructions, the instructions comprising:

one or more instructions which, when executed by one or more processors of a device, cause the one or more processors to detect whether a first one-shot signal object and a second one-shot signal object generate signals at periodic intervals;

one or more instructions which, when executed by the one or more processors, cause the one or more processors to determine a delay time when the first one-shot signal object and the second one-shot signal object generate signals at periodic intervals; and

one or more instructions which, when executed by the one or more processors, cause the one or more processors to invoke the first one-shot signal object based on the delay time,

the first one-shot signal object comprising:

a one-shot timer, or

an event generator.

20. The non-transitory computer-readable medium of claim 19 , where the one-shot timer tests whether a particular length of time has elapsed after invoking the first one-shot signal object.

Assignments (15)
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 3, 2025
From: PULSE SECURE LLC
To: ALTER DOMUS (US) LLC
Reel/Frame 071165/0027 →
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; IVANTI, INC.; MOBILEIRON, INC.; IVANTI US LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 054665/0062 →
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 →
RELEASE OF SECURITY INTEREST : RECORDED AT REEL/FRAME - 053638-0220 Recorded Dec 1, 2020
From: KKR LOAN ADMINISTRATION SERVICES LLC
To: PULSE SECURE, LLC
Reel/Frame 054559/0368 →
SECURITY INTEREST Recorded Aug 29, 2020
From: PULSE SECURE, LLC
To: KKR LOAN ADMINISTRATION SERVICES LLC, AS COLLATERAL AGENT
Reel/Frame 053638/0220 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 042380/0859 Recorded Aug 29, 2020
From: CERBERUS BUSINESS FINANCE, LLC, AS AGENT
To: PULSE SECURE, LLC
Reel/Frame 053638/0259 →
RELEASE OF SECURITY INTEREST Recorded Jul 21, 2020
From: JUNIPER NETWORKS, INC.
To: PULSE SECURE, LLC; SMOBILE SYSTEMS, INC.
Reel/Frame 053271/0307 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL 037338, FRAME 0408 Recorded May 1, 2017
From: US BANK NATIONAL ASSOCIATION
To: PULSE SECURE, LLC
Reel/Frame 042381/0568 →
GRANT OF SECURITY INTEREST PATENTS Recorded May 1, 2017
From: PULSE SECURE, LLC
To: CERBERUS BUSINESS FINANCE, LLC, AS COLLATERAL AGENT
Reel/Frame 042380/0859 →
SECURITY INTEREST Recorded Dec 21, 2015
From: PULSE SECURE, LLC
To: U.S BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037338/0408 →
SECURITY INTEREST Recorded Dec 30, 2014
From: PULSE SECURE, LLC; SMOBILE SYSTEMS, INC.
To: JUNIPER NETWORKS, INC.
Reel/Frame 034713/0950 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 24, 2014
From: JUNIPER NETWORKS, INC.
To: PULSE SECURE, LLC
Reel/Frame 034045/0717 →