25{
26 void ExecDriver ::
27 testInvariant () const
28 {
30 }
31
32
33
34 ExecDriver ::
35 ExecDriver ()
36 {
38 }
39
40
41
42 ::StatusCode ExecDriver ::
43 doManagerStep (Detail::ManagerData&
data)
const
44 {
46 using namespace msgEventLoop;
49 {
50 case Detail::ManagerStep::batchScriptVar:
51 {
52 data.batchSkipReleaseSetup =
true;
53 }
54 break;
55
56 case Detail::ManagerStep::submitJob:
57 case Detail::ManagerStep::doResubmit:
58 {
59
60
61 std::string maxIndex = std::to_string (
data.batchJobIndices.size());
62 const char *
argv[] = {
"eventloop_exec_worker",
data.submitDir.c_str(), maxIndex.c_str(),
nullptr };
63
64
65
66
67
68
69
70 execvp(argv[0], const_cast<char**>(argv));
71 auto myerrno = errno;
72 RCU_THROW_MSG (
"failed to execute eventloop_exec_worker: " + std::string (strerror (myerrno)));
73 }
74 break;
75
76 default:
77 break;
78 }
79 return ::StatusCode::SUCCESS;
80 }
81}
#define RCU_NEW_INVARIANT(x)
#define RCU_READ_INVARIANT(x)
char data[hepevt_bytes_allocation_ATLAS]
#define RCU_THROW_MSG(message)