Skip to content

Commit

Permalink
Add reproduce steps for race condition
Browse files Browse the repository at this point in the history
  • Loading branch information
mpodeszwa committed Sep 5, 2019
1 parent 526444b commit f3f201a
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 0 deletions.
12 changes: 12 additions & 0 deletions Example/ChatExample/CustomChatViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,27 @@
import UIKit
import StreamChatCore
import StreamChat
import RxSwift

var disposeBag2 = DisposeBag()

class CustomChatViewController: ChatViewController {

required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
Client.shared.set(user: .user2, token: .token2)
let channel = Channel(id: "general", name: "General")
channelPresenter = ChannelPresenter(channel: channel)
}

override func viewDidLoad() {
super.viewDidLoad()
disposeBag2 = DisposeBag()
Client.shared.onEvent(.messageNew).subscribe(onNext: { event in
print(event)
}).disposed(by: disposeBag2)
}

override func messageCell(at indexPath: IndexPath, message: Message, readUsers: [User]) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "message")
?? UITableViewCell(style: .value2, reuseIdentifier: "message")
Expand Down
1 change: 1 addition & 0 deletions Sources/Core/Client/Client+Setup.swift
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,7 @@ extension Client {
.do(onDispose: { [weak self] in self?.webSocket.disconnect() })

return Observable.combineLatest(appState, internetIsAvailable, webSocketResponse)
.delay(.seconds(1), scheduler: MainScheduler.instance)
.map { [weak self] in self?.webSocket.parseConnection(appState: $0, isInternetAvailable: $1, event: $2) }
.unwrap()
.distinctUntilChanged()
Expand Down

0 comments on commit f3f201a

Please sign in to comment.