[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [gpsd-dev] gpsd client maintainance
From: |
Eric S. Raymond |
Subject: |
Re: [gpsd-dev] gpsd client maintainance |
Date: |
Wed, 15 May 2013 08:43:51 -0400 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
devendra.aaru <address@hidden>:
> Hello,
>
> Gpsd kills the client (or subscriber) if its idle for more than 60
> sec, i think this is just used to maintain the client table and to
> serve as many client requests as possible. Please correct me if i am
> wrong.
>
> thanks
>From gpsd.c:
/*
* Timeout policy. We can't rely on clients closing connections
* correctly, so we need timeouts to tell us when it's OK to
* reclaim client fds. COMMAND_TIMEOUT fends off programs
* that open connections and just sit there, not issuing a WATCH or
* doing anything else that triggers a device assignment. Clients
* in watcher or raw mode that don't read their data will get dropped
* when throttled_write() fills up the outbound buffers and the
* NOREAD_TIMEOUT expires.
*
* RELEASE_TIMEOUT sets the amount of time we hold a device
* open after the last subscriber closes it; this is nonzero so a
* client that does open/query/close will have time to come back and
* do another single-shot query, if it wants to, before the device is
* actually closed. The reason this matters is because some Bluetooth
* GPSes not only shut down the GPS receiver on close to save battery
* power, they actually shut down the Bluetooth RF stage as well and
* only re-wake it periodically to see if an attempt to raise the
* device is in progress. The result is that if you close the device
* when it's powered up, a re-open can fail with EIO and needs to be
* tried repeatedly. Better to avoid this...
*
* DEVICE_REAWAKE says how long to wait before repolling after a zero-length
* read. It's there so we avoid spinning forever on an EOF condition.
*
* DEVICE_RECONNECT sets interval on retries when (re)connecting to
* a device.
*/
#define COMMAND_TIMEOUT 60*15
#define NOREAD_TIMEOUT 60*3
#define RELEASE_TIMEOUT 60
#define DEVICE_REAWAKE 0.01
#define DEVICE_RECONNECT 2
--
<a href="http://www.catb.org/~esr/">Eric S. Raymond</a>