]> Pileus Git - grits/commitdiff
Fix race conditions
authorAndy Spencer <andy753421@gmail.com>
Wed, 26 Dec 2012 08:53:29 +0000 (08:53 +0000)
committerAndy Spencer <andy753421@gmail.com>
Wed, 26 Dec 2012 08:53:29 +0000 (08:53 +0000)
src/plugins/elev.c
src/plugins/map.c
src/plugins/sat.c

index d359d1dd17923bec94906008829e40a7fed43ed6..7540a0816bc1d3bb7569fe93ac8d7a2528a1cd41 100644 (file)
@@ -154,6 +154,10 @@ static gboolean _load_tile_cb(gpointer _data)
        struct _LoadTileData *data  = _data;
        struct _TileData     *tdata = data->tdata;
        g_debug("GritsPluginElev: _load_tile_cb start");
+       if (data->elev->aborted) {
+               g_debug("GritsPluginElev: _load_tile - aborted");
+               return FALSE;
+       }
 
        /* Load OpenGL texture (from main thread) */
        if (data->pixels) {
index c57bae88610e4b8becbd6582bf3129c2c082d0d5..bb585e1556d395def2d0eec495ba138e021d79b3 100644 (file)
@@ -57,6 +57,10 @@ static gboolean _load_tile_cb(gpointer _data)
 {
        struct _LoadTileData *data = _data;
        g_debug("GritsPluginMap: _load_tile_cb start");
+       if (data->map->aborted) {
+               g_debug("GritsPluginMap: _load_tile - aborted");
+               return FALSE;
+       }
 
        guint *tex = g_new0(guint, 1);
        glGenTextures(1, tex);
@@ -73,7 +77,8 @@ static gboolean _load_tile_cb(gpointer _data)
        glFlush();
 
        data->tile->data = tex;
-       gtk_widget_queue_draw(GTK_WIDGET(data->map->viewer));
+       if (data->map->viewer)
+               gtk_widget_queue_draw(GTK_WIDGET(data->map->viewer));
        g_free(data->pixels);
        g_free(data);
        return FALSE;
index 9b10a2df70b6df34c630c3018bec566d4ff5db8a..d9d08918b12882f53aae8816d13471925a612f4a 100644 (file)
@@ -46,6 +46,10 @@ static gboolean _load_tile_cb(gpointer _data)
 {
        struct _LoadTileData *data = _data;
        g_debug("GritsPluginSat: _load_tile_cb start");
+       if (data->sat->aborted) {
+               g_debug("GritsPluginSat: _load_tile - aborted");
+               return FALSE;
+       }
 
        guint *tex = g_new0(guint, 1);
        glGenTextures(1, tex);