31 #ifdef G4MULTITHREADED
41 G4VisCommandMultithreadingActionOnEventQueueFull::G4VisCommandMultithreadingActionOnEventQueueFull()
44 fpCommand =
new G4UIcmdWithAString(
"/vis/multithreading/actionOnEventQueueFull",
this);
45 fpCommand->SetGuidance(
"When event queue for drawing gets full:");
46 fpCommand->SetGuidance(
"wait: event processing waits for vis manager to catch up.");
47 fpCommand->SetGuidance(
"discard: events are discarded for drawing.");
48 fpCommand->SetCandidates(
"wait discard");
49 fpCommand->SetParameterName (
"wait", omitable =
true);
50 fpCommand->SetDefaultValue (
"wait");
53 G4VisCommandMultithreadingActionOnEventQueueFull::~G4VisCommandMultithreadingActionOnEventQueueFull()
63 void G4VisCommandMultithreadingActionOnEventQueueFull::SetNewValue(
G4UIcommand*,
G4String newValue)
67 if (newValue ==
"wait") {
68 fpVisManager->SetWaitOnEventQueueFull(
true);
70 fpVisManager->SetWaitOnEventQueueFull(
false);
75 "When event queue for drawing is full,";
76 if (fpVisManager->GetWaitOnEventQueueFull()) {
77 G4cout <<
" event processing will wait";
79 G4cout <<
" events will be discarded for drawing";
87 G4VisCommandMultithreadingMaxEventQueueSize::G4VisCommandMultithreadingMaxEventQueueSize()
91 fpCommand->SetGuidance
92 (
"Defines maximum event queue size. N <=0 means \"unlimited\".");
93 fpCommand->SetGuidance
94 (
"If adding an event to the visualisation event queue would cause the"
95 " queue size to exceed this value:");
96 fpCommand->SetGuidance
97 (
" if actionOnEventQueueFull==wait the worker threads are paused for a short"
98 " time to give the visualisation manager a chance to catch up.");
99 fpCommand->SetGuidance
100 (
" if actionOnEventQueueFull==discard the event is discarded for drawing.");
101 fpCommand->SetParameterName (
"maxSize", omitable =
true);
102 fpCommand->SetDefaultValue (100);
105 G4VisCommandMultithreadingMaxEventQueueSize::~G4VisCommandMultithreadingMaxEventQueueSize()
115 void G4VisCommandMultithreadingMaxEventQueueSize::SetNewValue(
G4UIcommand*,
G4String newValue)
119 G4int maxEventQueueSize = fpCommand->GetNewIntValue(newValue);
120 fpVisManager->SetMaxEventQueueSize(maxEventQueueSize);
124 "Maximum event queue size has been set to "
125 << fpVisManager->GetMaxEventQueueSize()