Questions and Known Problems

Known Problems

Blocking Input/Output

Even though GNOME Weather now uses non-blocking I/O to retrieve data from the network, there are still some steps that block execution. Most notably, establishing a TCP connection to remote hosts is a blocking operation. Because the NWS and IWIN web servers are often heavily loaded, this step may take a significant amount of time. While that happens, the application is unable to respond to CORBA requests from the panel. In its current implementation, the panel iterates through all applications and sends frequent CORBA requests (eg. for saving state). If an applet cannot respond for any reason, then the panel will block waiting for a response.

While the panel is blocked, it will not respond to any user (or application) requests. For instance, panel movement and panel menus (the ones that appear upon a right click) will not work. However, other applets in the panel should work (unless they have made a CORBA request to the panel, eg. for querying panel size). As soon as the blocking operation in GNOME Weather completes, things should return to normal (and user interface requests that were buffered will be executed).

There is an experimental version of GNOME Weather that uses a separate thread for HTTP processing, which may be incorporated (temporarily) in the next release. However, the final solution is gnome-vfs (which will be part of GNOME 2.0) offers cross-platform support for fully asynchronous I/O.