29{
30 void TorqueDriver ::
31 testInvariant () const
32 {
34 }
35
36
37
38 TorqueDriver ::
39 TorqueDriver ()
40 {
42 }
43
44
45
46 ::StatusCode TorqueDriver ::
47 doManagerStep (Detail::ManagerData&
data)
const
48 {
50 using namespace msgEventLoop;
53 {
54 case Detail::ManagerStep::batchScriptVar:
55 {
56 data.batchJobId =
"EL_JOBID=$PBS_ARRAYID\n";
57 }
58 break;
59
60
61 case Detail::ManagerStep::submitJob:
62 case Detail::ManagerStep::doResubmit:
63 {
66
67 assert (!
data.batchJobIndices.empty());
68 assert (
data.batchJobIndices.back() + 1 ==
data.batchJobIndices.size());
69 const std::size_t njob =
data.batchJobIndices.size();
70
71 std::ostringstream
cmd;
72 cmd <<
"cd " <<
data.submitDir <<
"/submit && qsub "
73 <<
data.options.castString (Job::optSubmitFlags)
74 << " -t 0-" << (njob-1) << " run";
75 if (gSystem->Exec (
cmd.str().c_str()) != 0)
77 data.submitted =
true;
78 }
79 break;
80
81 default:
82 break;
83 }
84 return ::StatusCode::SUCCESS;
85 }
86}
#define RCU_NEW_INVARIANT(x)
#define RCU_READ_INVARIANT(x)
char data[hepevt_bytes_allocation_ATLAS]
#define RCU_THROW_MSG(message)