You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
but SinkOneMulticast won't release those 3 subscribers but continues to hold reference to those
SinkOneMulticast keeps holding those references until the sink emits
signalSink.tryEmitValue(true);
The above behavior of SinkOneMulticast holding references to disposed subscribers blocks its GC collection. This leads to memory leaks in the applications.
The application might have different components listening (subscribed) to the SinkOne. Some of the components may not be interested in the signal at a later point and dispose the subscriptions (for example, in the component close() method). When huge number of such components are created and closed, those subscribers in SinkOne leads to memory leak.
The text was updated successfully, but these errors were encountered:
It looks like
SinkOneMulticast
keeps track of subscribers even after the disposition of corresponding subscriptions.Here is the repro:
As expected
SinkOneMulticast
tracks 6 subscribers (3 from the first and 3 from the second set)Now dispose of the first set (A1, A2, A3)
doFinally
is invoked for the first set as expectedbut
SinkOneMulticast
won't release those 3 subscribers but continues to hold reference to thoseSinkOneMulticast
keeps holding those references until the sink emitsThe above behavior of
SinkOneMulticast
holding references to disposed subscribers blocks its GC collection. This leads to memory leaks in the applications.The application might have different components listening (subscribed) to the SinkOne. Some of the components may not be interested in the signal at a later point and dispose the subscriptions (for example, in the component close() method). When huge number of such components are created and closed, those subscribers in SinkOne leads to memory leak.
The text was updated successfully, but these errors were encountered: