IP Library Granted Patent US 11,537,499
Granted Patent B2
US 11,537,499 · App. 17/232,998 · Granted Dec 27, 2022

Self executing and self disposing signal

Inventor: Anthony Miller (San Francisco, CA)
Assignee: salesforce.com, inc.
G06F11/3476G06F8/31G06F11/3612G06F11/3644
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 11,537,499
App. No.
17/232,998
Granted
Dec 27, 2022
Kind
B2
Abstract

Described herein are systems, apparatus, methods and computer program products for implementing a self executing and self disposing signal for an imperative programming language. The self executing and self disposing signal may be utilized by a ReactiveX specification programming language. The signal may be executed before it is observed by an external observer, reducing load times. Additionally, the signal may allow for multiple observers to observe the output of the signal at the same time and may be self disposing to prevent memory leaks.

Claims (54)

1. A method for processing a signal using imperative programming, the method comprising:

creating, based on a first indication within a first code, a signal;

determining that the signal is observed by an internal observer;

begin processing of the signal based on the determining that the signal is observed by the internal observer;

receiving, by the internal observer, an output from the processing of the signal based on the internal observer observing the signal; and

providing, by the internal observer, the output from the processing of the signal to one or more external observers of a plurality of external observers observing the internal observer.

2. The method of claim 1 , further comprising:

creating the internal observer.

3. The method of claim 2 , wherein the internal observer is created along with the signal, and wherein the internal observer observes the signal after the creating of the internal observer.

4. The method of claim 1 , further comprising:

determining, after the beginning the processing of the signal, that the internal observer is observed by the one or more external observers of the plurality of external observers.

5. The method of claim 4 , further comprising:

determining, after the beginning the processing of the signal, that the signal is not being referenced by the first code;

determining, after the determining that the internal observer is observed by the one or more external observers of the plurality of external observers, that the internal observer is not being observed by any external observers; and

disposing the signal based on the determining that the internal observer is not being observed by any external observers and the determining that the signal is not being referenced by the first code.

6. The method of claim 5 , further comprising:

deallocating the signal from memory after disposing the signal.

7. The method of claim 1 , wherein:

the beginning the processing of the signal is at a first time;

the observing, by the one or more external observers of the plurality of external observers, the internal observer is at a second time; and

the first time is before the second time.

8. The method of claim 1 , wherein the signal is a ReactiveX specification signal.

9. A computer program product comprising computer-readable program code capable of being executed by one or more processors when retrieved from a non-transitory computer-readable medium, the computer-readable program code comprising instructions configurable to cause operations comprising:

creating, based on a first indication within a first code, a signal;

determining that the signal is observed by an internal observer;

begin processing of the signal based on the determining that the signal is observed by the internal observer;

receiving, by the internal observer, an output from the processing of the signal based on the internal observer observing the signal; and

providing, by the internal observer, the output from the processing of the signal to one or more external observers of a plurality of external observers observing the internal observer.

10. The computer program product of claim 9 , wherein the operations further comprise:

creating the internal observer.

11. The computer program product of claim 10 , wherein the internal observer is created along with the signal, and wherein the internal observer observes the signal after the creating of the internal observer.

12. The computer program product of claim 9 , wherein the operations further comprise:

determining, after the beginning the processing of the signal, that the internal observer is observed by the one or more external observers of the plurality of external observers.

13. The computer program product of claim 12 , wherein the signal comprises a disposable, and wherein the operations further comprise:

determining, with the disposable, that conditions for disposing of the signal have been met, wherein the conditions for disposing of the signal comprise:

that the signal is no longer referenced by the computer-readable program code; and

that the internal observer is not being observed by any external observers; and disposing the signal.

14. The computer program product of claim 13 , wherein the conditions for disposing of the signal further comprise:

receiving an instruction to cease operation of the signal.

15. The computer program product of claim 9 , wherein the beginning the processing of the signal is before any external observers are observing the internal observer.

16. A computing system implemented using a server system, the computer computing system comprising:

a processor;

a memory;

a signal function configured to begin processing a signal when observed by an observer and return an output based on the processing of the signal function; and

an internal observer configured to observe the signal function to begin the processing of the signal function and receive the output from the processing of the signal function, wherein the internal observer is further configured to be observed by a plurality of external observers to allow the plurality of external observers to each view the output from the processing of the signal function.

17. The computing system of claim 16 , further comprising:

a disposable configured to:

determine that the signal is not being referenced by program code;

determine that the internal observer is not being observed by any external observers: and

cause, based on the determining that the signal is not being referenced by the program code and the determining that the internal observer is not being observed by any external observers, disposal of the signal.

18. The computing system of claim 16 , further comprising:

the plurality of external observers.

19. The computing system of claim 16 , wherein the internal observer comprises a buffer configured to store a pre-determined number of outputs and to allow the plurality of external observers to view the pre-determined number of outputs.

20. The computing system of claim 16 , wherein the signal function is a ReactiveX specification signal function.

Assignments (2)
CHANGE OF NAME Recorded Dec 18, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069717/0512 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 16, 2021
From: MILLER, ANTHONY
To: SALESFORCE.COM, INC.
Reel/Frame 055946/0840 →
Continuity (2)
Continuation 16696928 · Nov 26, 2019
Related Publication 20210232482A1 · Jul 29, 2021