ID #1024

I am not able to abort a POP3 transfer and the whole application seems to hang, why?

YAM is a single-threaded application which uses so-called blocking socket I/O. This means, that it can only process one job at a time and a single TCP/IP transfer like a POP3 or SMTP connection or transfer might lock up the whole application (even GUI operations) in case the server doesn't response. This, for example can happen if the POP3/SMTP server you are trying to connect to isn't responding properly or your connection is suddenly interrupted.

The reason for the GUI lockup is, that as soon as YAM is trying to connect to other server, it is fully relying on the functionality of the TCP/IP stack you are running on your operating system (e.g. Roadshow on AmigaOS4). And as YAM is still using blocking socket I/O and that the TCP/IP stack might have a large timeout for retrying a certain TCP/IP operation it suddenly can cause your YAM application to block until the TCP/IP stack decides to return from the blocking socket call.

Even if for most connection types and users this might not be a big issue, we know that it can become very annoying and disturbing. Especially if you are having a dail-up connection. However, we have already planned to address the issue in a future version by introducing full multi-threading together with the use of non-blocking socket I/O in YAM. Until that happens, you can also try to lower the timeout of your TCP/IP stack and/or try to shutdown the TCP/IP stack if a connection suddenly locks up YAM.

Tags: -

Related entries:

You cannot comment on this entry