git.ucc.asn.au
/
progcomp2012.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[RULE CHANGE] *Victory by "attrition"* + Bug fixes
[progcomp2012.git]
/
judge
/
manager
/
program.cpp
diff --git
a/judge/manager/program.cpp
b/judge/manager/program.cpp
index
588f714
..
d5463f4
100644
(file)
--- a/
judge/manager/program.cpp
+++ b/
judge/manager/program.cpp
@@
-140,12
+140,13
@@
bool Program::SendMessage(const char * print, ...)
*/
bool Program::GetMessage(string & buffer, double timeout)
{
*/
bool Program::GetMessage(string & buffer, double timeout)
{
- if (!Running())
+ if (!Running()
|| timeout == 0
)
return false;
assert(&buffer != NULL);
GetterThread getterThread(input, buffer);
assert(&(getterThread.buffer) != NULL);
return false;
assert(&buffer != NULL);
GetterThread getterThread(input, buffer);
assert(&(getterThread.buffer) != NULL);
+
TimerThread timerThread(timeout*1000000);
getterThread.Start();
TimerThread timerThread(timeout*1000000);
getterThread.Start();
@@
-164,7
+165,8
@@
bool Program::GetMessage(string & buffer, double timeout)
}
getterThread.Stop();
}
getterThread.Stop();
- timerThread.Stop();
+ if (timeout > 0)
+ timerThread.Stop();
UCC
git Repository :: git.ucc.asn.au