From cbbad9dcf6bd2b27eca13aa61ab666035859932e Mon Sep 17 00:00:00 2001 From: Andy Spencer Date: Tue, 9 Feb 2010 17:31:18 +0000 Subject: [PATCH] Avoid excess threads with g_mutex_trylock --- src/plugins/elev.c | 3 ++- src/plugins/map.c | 3 ++- src/plugins/sat.c | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/plugins/elev.c b/src/plugins/elev.c index 6599964..9279b08 100644 --- a/src/plugins/elev.c +++ b/src/plugins/elev.c @@ -246,7 +246,8 @@ static void _free_tile(GisTile *tile, gpointer _elev) static gpointer _update_tiles(gpointer _elev) { GisPluginElev *elev = _elev; - g_mutex_lock(elev->mutex); + if (!g_mutex_trylock(elev->mutex)) + return NULL; gdouble lat, lon, elevation; gis_viewer_get_location(elev->viewer, &lat, &lon, &elevation); gis_tile_update(elev->tiles, diff --git a/src/plugins/map.c b/src/plugins/map.c index d304391..7a2d66d 100644 --- a/src/plugins/map.c +++ b/src/plugins/map.c @@ -134,7 +134,8 @@ static gpointer _update_tiles(gpointer _map) { g_debug("GisPluginMap: _update_tiles"); GisPluginMap *map = _map; - g_mutex_lock(map->mutex); + if (!g_mutex_trylock(map->mutex)) + return NULL; gdouble lat, lon, elev; gis_viewer_get_location(map->viewer, &lat, &lon, &elev); gis_tile_update(map->tiles, diff --git a/src/plugins/sat.c b/src/plugins/sat.c index fae0c37..1af0bfc 100644 --- a/src/plugins/sat.c +++ b/src/plugins/sat.c @@ -125,7 +125,8 @@ static gpointer _update_tiles(gpointer _sat) { g_debug("GisPluginSat: _update_tiles"); GisPluginSat *sat = _sat; - g_mutex_lock(sat->mutex); + if (!g_mutex_trylock(sat->mutex)) + return NULL; gdouble lat, lon, elev; gis_viewer_get_location(sat->viewer, &lat, &lon, &elev); gis_tile_update(sat->tiles, -- 2.41.0