On Fri, Jul 26, 2013 at 11:53 AM, Andreas Gal <[email protected]> wrote: > The main problem we are running into here > is that the password manager for example is completely synchronous. The API > is of the form x = searchLogin(needle). This can't be changed easily because > there is layers and layers of APIs around this API all across the codebase > that are also synchronous. Rewriting all of that to take a result callback > would take at least a couple months. Its righteous work, but it takes time, > and it doesn't really solve a performance problem because this code path is > very rarely taken.
Why is this a problem? We can easily fake an async API by just posting an event, while using the synchronous API under the hood (as the patch in bug 853549 does, as a first step to asyncifying pwmgr without breaking backwards-compatibility). Obviously doesn't solve the underlying main-thread responsiveness issue, but it's no worse than what we have now. > The solution old sync took (make a synchronous call, spin > the event loop while waiting, continue) is really terrible and we should not > go down that path. That's the solution that sync took to do the opposite, i.e. turn async APIs in into synchronous ones. Agreed that it's horrible! Gavin _______________________________________________ Sync-dev mailing list [email protected] https://mail.mozilla.org/listinfo/sync-dev

