summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2007-12-18 17:22:11 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2007-12-18 17:22:11 +0000
commite64a19fe9511e8f9a76d11d1c933e4796a430014 (patch)
tree6a658a74ccf067254391d97b19a655d87792da78
parent5c0c176c68a3bb677af9b7ac6b50dc89013e639b (diff)
Only update procmap if we read from the child.
-rw-r--r--src/app.c33
1 files changed, 18 insertions, 15 deletions
diff --git a/src/app.c b/src/app.c
index bbb3134..b6b37f4 100644
--- a/src/app.c
+++ b/src/app.c
@@ -1110,15 +1110,15 @@ vg_events_server_cb (GIOChannel *source,
fd = g_io_channel_unix_get_fd (io);
file = gzdopen (dup (fd), "r");
- if (vg_read (file, app) && app->client.pid == 0) {
- call_graph_store_update_tree_model (app->client.call_graph);
- }
-
- if (! app->client.terminated) {
- GtkTreeModel *model = procmap_store_new (app->client.pid);
- gtk_tree_view_set_model (ensure_procmap (app), model);
- g_object_unref (model);
+ if (vg_read (file, app)) {
+ if (! app->client.terminated) {
+ GtkTreeModel *model = procmap_store_new (app->client.pid);
+ gtk_tree_view_set_model (ensure_procmap (app), model);
+ g_object_unref (model);
+ } else
+ call_graph_store_update_tree_model (app->client.call_graph);
}
+ gzclose (file);
gdk_window_set_cursor (app->window->window, NULL);
@@ -1744,6 +1744,7 @@ lwp_events_server_cb (GIOChannel *source,
GIOChannel *io;
int fd;
gzFile *file;
+ gboolean update;
gdk_window_set_cursor (app->window->window, app->busy_cursor);
gdk_flush ();
@@ -1752,15 +1753,17 @@ lwp_events_server_cb (GIOChannel *source,
fd = g_io_channel_unix_get_fd (io);
file = gzdopen (dup (fd), "r");
- lwp_read (file, app);
+ update = lwp_read (file, app);
gzclose (file);
- if (! app->client.terminated) {
- GtkTreeModel *model = procmap_store_new (app->client.pid);
- gtk_tree_view_set_model (ensure_procmap (app), model);
- g_object_unref (model);
- } else {
- call_graph_store_update_tree_model (app->client.call_graph);
+ if (update) {
+ if (! app->client.terminated) {
+ GtkTreeModel *model = procmap_store_new (app->client.pid);
+ gtk_tree_view_set_model (ensure_procmap (app), model);
+ g_object_unref (model);
+ } else {
+ call_graph_store_update_tree_model (app->client.call_graph);
+ }
}
gdk_window_set_cursor (app->window->window, NULL);