[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [gpsd-dev] gpsd client maintainance
From: |
devendra.aaru |
Subject: |
Re: [gpsd-dev] gpsd client maintainance |
Date: |
Wed, 15 May 2013 18:24:25 +0530 |
On Wed, May 15, 2013 at 6:13 PM, Eric S. Raymond <address@hidden> wrote:
> 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>
Thanks for the answer, and i was seeing the very old gpsd release 2.3.
I will read the code once again with the latest gpsd sources.
thanks,