# Libwww Basic Timers

The Timer class handles timer for libwww and the application. This works exactly as in X where you create a timer object with a callback function and a timeout. The callback will be called every time the timer expires.

There are several timeouts that can be set in libwww:

1. The time we keep an idle persistent connection open. Here there are in fact two mechanisms depending on whether you use blocking or non-blocking sockets. The default is 60 secs. The timers can be accessed using the functions defined in the HTHost object
2. The idle time we want to wait when receiving a response from a server, that is, if it doesn't send anything in a number of secs. The default here is no timeout. It can be accessed in th HTHost obejct as well.
3. The timeout before we flush pending requests in a pipeline, the default here is 30 ms. It is also accessed in the HTHost object
4. The timeout before we start sending the body of a `PUT` or `POST` request. Normally we send the `Expect: 100-continue` header field but if the server doesn't send back a `100 Continue` code then we upload the body anyway. The default is 2 secs and can be accessed in the HTTP module.

Registrering and deleting Timers