salsa  0.7.1
TaskState.cc
1 #include <signal.h>
2 #include "TaskState.hh"
3 #include "TaskExecutor.hh"
4 namespace Salsa {
5 
6 TaskState::TaskState(TaskExecutor * pTaskExecutor) : Object(), mpTaskExecutor(pTaskExecutor)
7 {
11 }
13 {
17  delete mpTask;
18  delete mpTaskExecutor;
19 }
20 
21 void TaskState::id(uint32_t id)
22 {
26  mId = id;
27 }
28 uint32_t TaskState::id() const
29 {
33  return mId;
34 }
35 
37 {
41  mState = s;
42 }
44 {
48  return mState;
49 }
50 
51 void TaskState::pid(uint32_t pid)
52 {
56  mPID = pid;
57 }
58 uint32_t TaskState::pid() const
59 {
63  return mPID;
64 }
65 
66 TaskInfo * TaskState::task() const
67 {
71  return mpTask;
72 }
73 
74 void TaskState::task(TaskInfo * t)
75 {
79 
80  mpTask = t;
81 }
82 
84 {
88  return mpTaskExecutor;
89 }
90 
92 {
96 
97  if (mPID == 0) return;
98 
99  int rc = kill(mPID, SIGKILL);
100  if (rc == 0) {
101  SPD_WARN("JOB [{}:{}] PID [{}] was killed by [SIGKILL] signal", mpTask->jobid(), mpTask->taskid(), mPID);
102  }
103  else {
104  SPD_ERROR("JOB [{}:{}] PID [{}] could not be killed it [SIGKILL] !!!", mpTask->jobid(), mpTask->taskid(), mPID);
105  }
106 
107  // mPID = 0;
108  mState = killed;
109 }
110 
111 void TaskState::print(bool verbose) const
112 {
116 
117  if (!verbose) return;
118 
119  SPD_INFO("id [{}] state [{}] job [{}:{}]", mId, static_cast<int>(mState), mpTask ? mpTask->jobid() : "n/a",
120  mpTask ? mpTask->taskid() : -1);
121 }
122 
123 } // namespace Salsa
Base Salsa Object class.
Definition: Object.hh:15
Base TaskExecutor class.
Definition: TaskExecutor.hh:14
TaskExecutor * executor()
Definition: TaskState.cc:83
uint32_t mId
ID of task state.
Definition: TaskState.hh:42
uint32_t pid() const
Definition: TaskState.cc:58
uint32_t id() const
Definition: TaskState.cc:28
EState mState
Status of actor.
Definition: TaskState.hh:43
TaskInfo * task() const
Definition: TaskState.cc:66
uint32_t mPID
Task PID.
Definition: TaskState.hh:45
void print(bool verbose=false) const
Definition: TaskState.cc:111
TaskInfo * mpTask
TaskInfo held by said actor.
Definition: TaskState.hh:44
virtual ~TaskState()
Definition: TaskState.cc:12
EState state() const
Definition: TaskState.cc:43
TaskState(TaskExecutor *te=nullptr)
Definition: TaskState.cc:6
EState
Status of task.
Definition: TaskState.hh:19
TaskExecutor * mpTaskExecutor
Task Executor.
Definition: TaskState.hh:46