From 34600bfcd7791fdc09ad7a03f5c2aa37b59dc42c Mon Sep 17 00:00:00 2001
From: Samo Penic <samo.penic@fe.uni-lj.si>
Date: Tue, 15 Mar 2016 16:04:01 +0000
Subject: [PATCH] Added running status check.

---
 python/trisurf/trisurf.py |   19 ++++++++++++++++---
 1 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/python/trisurf/trisurf.py b/python/trisurf/trisurf.py
index bf0809e..e54c6b8 100644
--- a/python/trisurf/trisurf.py
+++ b/python/trisurf/trisurf.py
@@ -9,6 +9,7 @@
 from itertools import islice
 import mmap
 import shlex
+import psutil
 '''
 This is a trisurf instance manager written in python
 
@@ -181,13 +182,25 @@
 		self.tape.setTape(tapetxt.text)
 
 	def getStatus(self):
-		return 0
+		self.Dir=Directory(maindir=self.maindir,simdir=self.subdir)
+		self.Dir.makeifnotexist()
+#		self.Dir.goto()
+		try:
+			fp = open(os.path.join(self.Dir.fullpath(),'.lock'))
+		except IOError as e:
+			return 0 #file probably does not exist. e==2??
+		pid=fp.readline();
+		fp.close();
+		if(psutil.pid_exists(int(pid))):
+			return 1
+		else:
+			return 0
 
 	def start(self):
 		if(self.getStatus()==0):
 			self.Dir=Directory(maindir=self.maindir,simdir=self.subdir)
 			self.Dir.makeifnotexist()
-			self.Dir.goto()
+#			self.Dir.goto()
 			print("Starting trisurf-ng executable at "+self.Dir.fullpath()+"\n")
 		else:
 			print("Process already running. Not starting\n")
@@ -212,7 +225,7 @@
 		return
 
 	def getStatistics(self, statfile="statistics.csv"):
-		self.statistics=Statistics("", statfile) # we are already in the running directory, so local path is needed!
+		self.statistics=Statistics(self.Dir.fullpath(), statfile)
 		return
 
 	def __str__(self):

--
Gitblit v1.9.3