Skip to content

Commit

Permalink
Fix memory leaks (clear subscriptions)
Browse files Browse the repository at this point in the history
  • Loading branch information
NaikSoftware committed Mar 30, 2018
1 parent 3c10dc4 commit fae04e6
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
@Override
public Flowable<String> messages() {
Flowable<String> flowable = Flowable.<String>create(mMessagesEmitters::add, BackpressureStrategy.BUFFER)
.doOnCancel(() -> {
.doFinally(() -> {
Iterator<FlowableEmitter<? super String>> iterator = mMessagesEmitters.iterator();
while (iterator.hasNext()) {
if (iterator.next().isCancelled()) iterator.remove();
Expand Down Expand Up @@ -131,7 +131,7 @@ public Flowable<Void> send(String stompMessage) {
@Override
public Flowable<LifecycleEvent> getLifecycleReceiver() {
return Flowable.<LifecycleEvent>create(mLifecycleEmitters::add, BackpressureStrategy.BUFFER)
.doOnCancel(() -> {
.doFinally(() -> {
synchronized (mLifecycleEmitters) {
Iterator<FlowableEmitter<? super LifecycleEvent>> iterator = mLifecycleEmitters.iterator();
while (iterator.hasNext()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@
@Override
public Flowable<String> messages() {
Flowable<String> flowable = Flowable.<String>create(mMessagesEmitters::add, BackpressureStrategy.BUFFER)
.doOnCancel(() -> {
.doFinally(() -> {
Iterator<FlowableEmitter<? super String>> iterator = mMessagesEmitters.iterator();
while (iterator.hasNext()) {
if (iterator.next().isCancelled()) iterator.remove();
Expand Down Expand Up @@ -165,7 +165,7 @@ private void emitMessage(String stompMessage) {
@Override
public Flowable<LifecycleEvent> getLifecycleReceiver() {
return Flowable.<LifecycleEvent>create(mLifecycleEmitters::add, BackpressureStrategy.BUFFER)
.doOnCancel(() -> {
.doFinally(() -> {
synchronized (mLifecycleLock) {
Iterator<FlowableEmitter<? super LifecycleEvent>> iterator = mLifecycleEmitters.iterator();
while (iterator.hasNext()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public class StompClient {

private Disposable mMessagesDisposable;
private Disposable mLifecycleDisposable;
private Map<String, Set<FlowableEmitter<? super StompMessage>>> mEmitters = Collections.synchronizedMap(new HashMap<>());
private final Map<String, Set<FlowableEmitter<? super StompMessage>>> mEmitters = Collections.synchronizedMap(new HashMap<>());
private List<ConnectableFlowable<Void>> mWaitConnectionFlowables;
private final ConnectionProvider mConnectionProvider;
private HashMap<String, String> mTopics;
Expand Down Expand Up @@ -179,7 +179,7 @@ public Flowable<StompMessage> topic(String destinationPath, List<StompHeader> he
emittersSet.add(emitter);
}
}, BackpressureStrategy.BUFFER)
.doOnCancel(() -> {
.doFinally(() -> {
synchronized (mEmitters) {
Iterator<String> mapIterator = mEmitters.keySet().iterator();
while (mapIterator.hasNext()) {
Expand Down

0 comments on commit fae04e6

Please sign in to comment.