* [PATCH Bluez v2] adapter: Fix discovery trigger for 0 second delay
@ 2021-03-12 11:59
0 siblings, 0 replies; 5+ messages in thread
From: @ 2021-03-12 11:59 UTC (permalink / raw)
To: linux-bluetooth
From: Frédéric Danis <frederic.danis@collabora.com>
When calling `StartDiscovery` the effective start can take around 10 ms or
up to 700 ms.
g_timeout_add_seconds() call doesn't ensure the time for the first call of
the timer if the delay is less or equal to 1 second.
---
v2: Fix issue founs by CI
src/adapter.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/src/adapter.c b/src/adapter.c
index cc0849f99..3078ce1a8 100644
--- a/src/adapter.c
+++ b/src/adapter.c
@@ -1797,6 +1797,13 @@ static void trigger_start_discovery(struct btd_adapter *adapter, guint delay)
if (!btd_adapter_get_powered(adapter))
return;
+ if (!delay) {
+ adapter->discovery_idle_timeout = g_idle_add(
+ start_discovery_timeout,
+ adapter);
+ return;
+ }
+
adapter->discovery_idle_timeout = g_timeout_add_seconds(delay,
start_discovery_timeout, adapter);
}
--
2.18.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH Bluez v2] adapter: Fix discovery trigger for 0 second delay
2021-03-12 19:09 ` Frédéric Danis
@ 2021-03-12 19:37 ` Luiz Augusto von Dentz
0 siblings, 0 replies; 5+ messages in thread
From: Luiz Augusto von Dentz @ 2021-03-12 19:37 UTC (permalink / raw)
To: Frédéric Danis; +Cc: linux-bluetooth
Hi Frédéric,
On Fri, Mar 12, 2021 at 11:09 AM Frédéric Danis
<frederic.danis@collabora.com> wrote:
>
> Hi Luiz,
>
> On 12/03/2021 19:28, Luiz Augusto von Dentz wrote:
> > Hi Frédéric,
> >
> > On Fri, Mar 12, 2021 at 8:53 AM Frédéric Danis
> > <frederic.danis@collabora.com> wrote:
> >> When calling `StartDiscovery` the effective start can take around 10 ms or
> >> up to 700 ms.
> >> g_timeout_add_seconds() call doesn't ensure the time for the first call of
> >> the timer if the delay is less or equal to 1 second.
> > Interesting, I always thought that 0 would be handle just as idle and
> > not round up to the next timeout.
> >
> >> ---
> >> v2: Fix issue founs by CI
> >>
> >> src/adapter.c | 7 +++++++
> >> 1 file changed, 7 insertions(+)
> >>
> >> diff --git a/src/adapter.c b/src/adapter.c
> >> index cc0849f99..3078ce1a8 100644
> >> --- a/src/adapter.c
> >> +++ b/src/adapter.c
> >> @@ -1797,6 +1797,13 @@ static void trigger_start_discovery(struct btd_adapter *adapter, guint delay)
> >> if (!btd_adapter_get_powered(adapter))
> >> return;
> >>
> >> + if (!delay) {
> >> + adapter->discovery_idle_timeout = g_idle_add(
> >> + start_discovery_timeout,
> >> + adapter);
> >> + return;
> >> + }
> >> +
> >> adapter->discovery_idle_timeout = g_timeout_add_seconds(delay,
> >> start_discovery_timeout, adapter);
> > Maybe we should have a wrapper function for g_timeout_add_seconds
> > since I suspect there might be other instances of
> > g_timeout_add_seconds with 0 delay.
>
> Ok
> Is adding a timeout_add_seconds() function to src/shared/timeout.h the
> right place?
Yep, that should be the right place.
--
Luiz Augusto von Dentz
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH Bluez v2] adapter: Fix discovery trigger for 0 second delay
2021-03-12 18:28 ` Luiz Augusto von Dentz
@ 2021-03-12 19:09 ` Frédéric Danis
2021-03-12 19:37 ` Luiz Augusto von Dentz
0 siblings, 1 reply; 5+ messages in thread
From: Frédéric Danis @ 2021-03-12 19:09 UTC (permalink / raw)
To: Luiz Augusto von Dentz; +Cc: linux-bluetooth
Hi Luiz,
On 12/03/2021 19:28, Luiz Augusto von Dentz wrote:
> Hi Frédéric,
>
> On Fri, Mar 12, 2021 at 8:53 AM Frédéric Danis
> <frederic.danis@collabora.com> wrote:
>> When calling `StartDiscovery` the effective start can take around 10 ms or
>> up to 700 ms.
>> g_timeout_add_seconds() call doesn't ensure the time for the first call of
>> the timer if the delay is less or equal to 1 second.
> Interesting, I always thought that 0 would be handle just as idle and
> not round up to the next timeout.
>
>> ---
>> v2: Fix issue founs by CI
>>
>> src/adapter.c | 7 +++++++
>> 1 file changed, 7 insertions(+)
>>
>> diff --git a/src/adapter.c b/src/adapter.c
>> index cc0849f99..3078ce1a8 100644
>> --- a/src/adapter.c
>> +++ b/src/adapter.c
>> @@ -1797,6 +1797,13 @@ static void trigger_start_discovery(struct btd_adapter *adapter, guint delay)
>> if (!btd_adapter_get_powered(adapter))
>> return;
>>
>> + if (!delay) {
>> + adapter->discovery_idle_timeout = g_idle_add(
>> + start_discovery_timeout,
>> + adapter);
>> + return;
>> + }
>> +
>> adapter->discovery_idle_timeout = g_timeout_add_seconds(delay,
>> start_discovery_timeout, adapter);
> Maybe we should have a wrapper function for g_timeout_add_seconds
> since I suspect there might be other instances of
> g_timeout_add_seconds with 0 delay.
Ok
Is adding a timeout_add_seconds() function to src/shared/timeout.h the
right place?
Fred
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH Bluez v2] adapter: Fix discovery trigger for 0 second delay
2021-03-12 16:50 Frédéric Danis
@ 2021-03-12 18:28 ` Luiz Augusto von Dentz
2021-03-12 19:09 ` Frédéric Danis
0 siblings, 1 reply; 5+ messages in thread
From: Luiz Augusto von Dentz @ 2021-03-12 18:28 UTC (permalink / raw)
To: Frédéric Danis; +Cc: linux-bluetooth
Hi Frédéric,
On Fri, Mar 12, 2021 at 8:53 AM Frédéric Danis
<frederic.danis@collabora.com> wrote:
>
> When calling `StartDiscovery` the effective start can take around 10 ms or
> up to 700 ms.
> g_timeout_add_seconds() call doesn't ensure the time for the first call of
> the timer if the delay is less or equal to 1 second.
Interesting, I always thought that 0 would be handle just as idle and
not round up to the next timeout.
> ---
> v2: Fix issue founs by CI
>
> src/adapter.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/src/adapter.c b/src/adapter.c
> index cc0849f99..3078ce1a8 100644
> --- a/src/adapter.c
> +++ b/src/adapter.c
> @@ -1797,6 +1797,13 @@ static void trigger_start_discovery(struct btd_adapter *adapter, guint delay)
> if (!btd_adapter_get_powered(adapter))
> return;
>
> + if (!delay) {
> + adapter->discovery_idle_timeout = g_idle_add(
> + start_discovery_timeout,
> + adapter);
> + return;
> + }
> +
> adapter->discovery_idle_timeout = g_timeout_add_seconds(delay,
> start_discovery_timeout, adapter);
Maybe we should have a wrapper function for g_timeout_add_seconds
since I suspect there might be other instances of
g_timeout_add_seconds with 0 delay.
> }
> --
> 2.18.0
>
--
Luiz Augusto von Dentz
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH Bluez v2] adapter: Fix discovery trigger for 0 second delay
@ 2021-03-12 16:50 Frédéric Danis
2021-03-12 18:28 ` Luiz Augusto von Dentz
0 siblings, 1 reply; 5+ messages in thread
From: Frédéric Danis @ 2021-03-12 16:50 UTC (permalink / raw)
To: linux-bluetooth
When calling `StartDiscovery` the effective start can take around 10 ms or
up to 700 ms.
g_timeout_add_seconds() call doesn't ensure the time for the first call of
the timer if the delay is less or equal to 1 second.
---
v2: Fix issue founs by CI
src/adapter.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/src/adapter.c b/src/adapter.c
index cc0849f99..3078ce1a8 100644
--- a/src/adapter.c
+++ b/src/adapter.c
@@ -1797,6 +1797,13 @@ static void trigger_start_discovery(struct btd_adapter *adapter, guint delay)
if (!btd_adapter_get_powered(adapter))
return;
+ if (!delay) {
+ adapter->discovery_idle_timeout = g_idle_add(
+ start_discovery_timeout,
+ adapter);
+ return;
+ }
+
adapter->discovery_idle_timeout = g_timeout_add_seconds(delay,
start_discovery_timeout, adapter);
}
--
2.18.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2021-03-12 19:38 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-12 11:59 [PATCH Bluez v2] adapter: Fix discovery trigger for 0 second delay
2021-03-12 16:50 Frédéric Danis
2021-03-12 18:28 ` Luiz Augusto von Dentz
2021-03-12 19:09 ` Frédéric Danis
2021-03-12 19:37 ` Luiz Augusto von Dentz
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.