On Mon, Feb 20, 2017 at 6:27 PM, Sven Van Caekenberghe <sven@stfx.eu> wrote:
On 20 Feb 2017, at 10:30, Pavel Krivanek <pavel.krivanek@gmail.com> wrote:
2017-02-20 10:27 GMT+01:00 Guillermo Polito <guillermopolito@gmail.com>: As far as I remember, the main problem was not bandwidth but a blocking and non-responsive UI. Imagine I'm in the university, or in a company with a proxy. And I forget to set the proxy. Then, while spotter tries to fetch catalog entries, it would block the image and throw a timeout error some minutes after.
So, maybe for the future and besides Ben's C option (which I like) I have a
D) Load catalog entries in background in a non-blocking way - and while catalog entries are not yet available, they should not be shown
AFIK the main problem was that there was not possilbe to do it non-blocking way.
Yes that is true. (It is actually DNS resolving that is blocked in some freak case).
In sqUnixSocket.c I read... * Notes: * Sockets are completely asynchronous, but the resolver is still synchronous. So does this mean that if for any reason the resolver primitive takes a long time to respond, the whole VM is blocked? Thus forking the Catalog loading in another thread would have no benefit? Would having the resolver coded purely in-Image behave better? So a slow name resolution would not hold up the whole image if it happened in a forked thread. I found such an implementation in OpenCobalt and after some minor cleanup basic operations work fine. http://smalltalkhub.com/#!/~BenComan/DNS/ cheers -ben
But the thing is, the problematic situation only occurs for a very small percentage of people, like less than 1%, probably even much less. (Remember, nobody can produce a repeatable case for it).
So the question is, is that enough reason to act as if we are still in the 90's when internet was a luxury and cut features that depend on it ? If you have no network today, you're in big trouble anyway. (Again, if you turn off your network, no blocking will happen at all, try it).
So what is more important ? The general functionality of the 99.xxx % or the unreproducible freak case ?