dbus: Remove scan timeout

pull/162/head
Olivier Martin 2020-04-08 00:19:19 +02:00 committed by Olivier Martin
parent d26065d6ad
commit 6df99eadbe
2 changed files with 5 additions and 1 deletions

View File

@ -244,7 +244,7 @@ int gattlib_adapter_scan_enable_with_filter(void *adapter, uuid_t **uuid_list, i
// Run Glib loop for 'timeout' seconds
gattlib_adapter->scan_loop = g_main_loop_new(NULL, 0);
g_timeout_add_seconds(timeout, stop_scan_func, gattlib_adapter->scan_loop);
gattlib_adapter->timeout_id = g_timeout_add_seconds(timeout, stop_scan_func, gattlib_adapter->scan_loop);
g_main_loop_run(gattlib_adapter->scan_loop);
// Note: The function only resumes when loop timeout as expired or g_main_loop_quit has been called.
@ -280,6 +280,9 @@ int gattlib_adapter_scan_disable(void* adapter) {
org_bluez_adapter1_call_stop_discovery_sync(gattlib_adapter->adapter_proxy, NULL, &error);
// Ignore the error
// Remove timeout
g_source_remove(gattlib_adapter->timeout_id);
// Ensure the scan loop is quit
g_main_loop_quit(gattlib_adapter->scan_loop);
g_main_loop_unref(gattlib_adapter->scan_loop);

View File

@ -58,6 +58,7 @@ typedef struct {
struct gattlib_adapter {
OrgBluezAdapter1 *adapter_proxy;
GMainLoop *scan_loop;
guint timeout_id;
};
struct dbus_characteristic {