Dispatch most public APIs and callbacks for timers and network calls to an internal queue to improve consistency. This also allows us to move work from the calling thread which is expected to be main for many view interactions.
This comes with 2 behavioral changes:
Any api call which generates an event no longer guarantees that the event would be recorded to disk when the call returns
setSessionId no longer immediately sets the sessionId, and subsequent calls to getSessionId may return the previous sessionId until this completes.
Checklist
[X] Does your PR title have the correct title format?
Summary
Dispatch most public APIs and callbacks for timers and network calls to an internal queue to improve consistency. This also allows us to move work from the calling thread which is expected to be main for many view interactions.
This comes with 2 behavioral changes:
Checklist