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

Reply via email to