228f5c83f9
Summary: This commit makes the websocket's delegate dispatch queue use `RCTWebSocketModule`'s method queue. This fixes a bug where didReceiveMessage was called on the wrong queue, which is especially harmful if the websocket has a contentHandler expects to be running on the RCTWebSocketModule's method queue. This also fixes the race condition where `_contentHandlers` and `_sockets` can be mutated from the main dispatch queue (the default in `RCTRSWebSocket`) and `RCTWebSocketModule`'s method queue. Websockets still work, and hopefully crash less now. - [iOS][BUGFIX][WebSocket] fix crashes caused by a race condition in websocket delegates. Closes https://github.com/facebook/react-native/pull/18530 Differential Revision: D7394298 Pulled By: hramos fbshipit-source-id: 230466ccb47ea532ced15cd7603256a19077b32b |
||
---|---|---|
.. | ||
RCTWebSocket.xcodeproj | ||
__mocks__ | ||
__tests__ | ||
RCTReconnectingWebSocket.h | ||
RCTReconnectingWebSocket.m | ||
RCTSRWebSocket.h | ||
RCTSRWebSocket.m | ||
RCTWebSocketExecutor.h | ||
RCTWebSocketExecutor.m | ||
RCTWebSocketModule.h | ||
RCTWebSocketModule.m | ||
WebSocket.js | ||
WebSocketEvent.js | ||
WebSocketInterceptor.js |