comparison pui-backend.c @ 45:4a859595eabd

Add debug logging when periodic checks are inhibited
author Guido Berhoerster <guido+pui@berhoerster.name>
date Thu, 05 Nov 2020 11:18:16 +0100
parents b9c65915cc54
children 8ed91c5e0116
comparison
equal deleted inserted replaced
44:3da32a3ffe3c 45:4a859595eabd
249 } 249 }
250 250
251 static void 251 static void
252 check_inhibit(PuiBackend *self) 252 check_inhibit(PuiBackend *self)
253 { 253 {
254 gboolean is_offline;
255 gboolean is_disallowed_mobile;
254 gboolean inhibited; 256 gboolean inhibited;
255 guint elapsed_time; 257 guint elapsed_time;
256 guint remaining_time; 258 guint remaining_time;
257 259
258 inhibited = ((self->network_state == PK_NETWORK_ENUM_OFFLINE) || 260 is_offline = self->network_state == PK_NETWORK_ENUM_OFFLINE;
259 (!self->use_mobile_connection && 261 is_disallowed_mobile = !self->use_mobile_connection &&
260 (self->network_state == PK_NETWORK_ENUM_MOBILE)) || 262 (self->network_state == PK_NETWORK_ENUM_MOBILE);
261 self->is_battery_low); 263 inhibited = is_offline || is_disallowed_mobile || self->is_battery_low;
262 if (self->inhibited == inhibited) { 264 if (self->inhibited == inhibited) {
263 return; 265 return;
264 } 266 }
265 267
266 self->inhibited = inhibited; 268 self->inhibited = inhibited;
273 /* cancel running operation */ 275 /* cancel running operation */
274 if ((self->cancellable != NULL) && 276 if ((self->cancellable != NULL) &&
275 !g_cancellable_is_cancelled(self->cancellable)) { 277 !g_cancellable_is_cancelled(self->cancellable)) {
276 g_cancellable_cancel(self->cancellable); 278 g_cancellable_cancel(self->cancellable);
277 g_clear_object(&self->cancellable); 279 g_clear_object(&self->cancellable);
280 }
281
282 if (is_offline) {
283 g_debug("perioidic checks inhibited: network offline");
284 }
285 if (is_disallowed_mobile) {
286 g_debug("perioidic checks inhibited: use of mobile "
287 "connection not allowed");
288 }
289 if (self->is_battery_low) {
290 g_debug("perioidic checks inhibited: low battery");
278 } 291 }
279 } else { 292 } else {
280 /* schedule periodic checks when no longer inhibited */ 293 /* schedule periodic checks when no longer inhibited */
281 elapsed_time = (g_get_monotonic_time() - self->last_check) / 294 elapsed_time = (g_get_monotonic_time() - self->last_check) /
282 G_USEC_PER_SEC; 295 G_USEC_PER_SEC;
288 remaining_time = (elapsed_time < PUI_CHECK_UPDATES_INTERVAL) ? 301 remaining_time = (elapsed_time < PUI_CHECK_UPDATES_INTERVAL) ?
289 PUI_CHECK_UPDATES_INTERVAL - elapsed_time : 302 PUI_CHECK_UPDATES_INTERVAL - elapsed_time :
290 PUI_STARTUP_DELAY; 303 PUI_STARTUP_DELAY;
291 self->check_id = g_timeout_add_seconds(remaining_time, 304 self->check_id = g_timeout_add_seconds(remaining_time,
292 periodic_check, self); 305 periodic_check, self);
306
307 g_debug("perioidic checks no longer inhibited, time since "
308 "last check: %ds, next check in: %ds", elapsed_time,
309 remaining_time);
293 } 310 }
294 } 311 }
295 312
296 static void 313 static void
297 pui_backend_set_property(GObject *object, guint property_id, 314 pui_backend_set_property(GObject *object, guint property_id,