summaryrefslogtreecommitdiffstats
path: root/grapher/StapParser.hxx
diff options
context:
space:
mode:
authorTim Moore <timoore@redhat.com>2009-12-11 14:03:47 +0100
committerTim Moore <timoore@redhat.com>2009-12-11 14:16:26 +0100
commite47f92ea31a605802c59541ca325ffd567c45ca4 (patch)
tree8a10b369ed8836cf9c87cadc45050e67d768ca09 /grapher/StapParser.hxx
parente83324285bb277300f5c91ee1c2a39bf04df502d (diff)
downloadsystemtap-steved-e47f92ea31a605802c59541ca325ffd567c45ca4.tar.gz
systemtap-steved-e47f92ea31a605802c59541ca325ffd567c45ca4.tar.xz
systemtap-steved-e47f92ea31a605802c59541ca325ffd567c45ca4.zip
grapher: implement restarting a stap process
* grapher/StapParser.cxx (StapParser::disconnect): new function * grapher/StapParser.hxx (StapProcess::StapProcess): initialize argv to 0 * grapher/grapher.cxx (StapLauncher::setArgs): Set argv to 0 (StapLauncher launch, launchUsingParser): Refactor launch(), extracting function a that (re)launches a stap process using an existing parser. (StapLauncher::onChildDied): call disconnect() on dead parser. (GrapherWindow::_graphicalLauncher, setGraphicalLauncher): delete member, replacing with... (graphicalLauncher): new variable (ProcModelColumns): Store parser object in the list model instead of just a StapProcess object. (ProcWindow::onRestart): new function (ProcWindow::refresh): Preserve the list selection when the process list is refreshed. (ProcWindow::onSelectionChanged): Manage the restart button's state.
Diffstat (limited to 'grapher/StapParser.hxx')
-rw-r--r--grapher/StapParser.hxx3
1 files changed, 2 insertions, 1 deletions
diff --git a/grapher/StapParser.hxx b/grapher/StapParser.hxx
index 24e84fc9..169533b6 100644
--- a/grapher/StapParser.hxx
+++ b/grapher/StapParser.hxx
@@ -18,7 +18,7 @@ namespace systemtap
// arguments and script for a stap process
struct StapProcess
{
- StapProcess(pid_t pid_ = -1) : pid(pid_) {}
+ StapProcess(pid_t pid_ = -1) : argv(0), pid(pid_) {}
std::string stapArgs;
std::string script;
std::string scriptArgs;
@@ -67,6 +67,7 @@ namespace systemtap
_process = process;
}
void initIo(int inFd, int errFd, bool catchHUP);
+ void disconnect();
};
sigc::signal<void, pid_t>& childDiedSignal();