aboutsummaryrefslogtreecommitdiff
path: root/src/ftask.php
diff options
context:
space:
mode:
authorCassio de Campos <cassiopc@gmail.com>2017-10-24 14:58:09 +0000
committerCassio de Campos <cassiopc@gmail.com>2017-10-24 14:58:09 +0000
commitaaee4537fc9201e9d6a242583d82fd1bea97928c (patch)
treeff57c7f621382492910292b490d9c67e6f99e739 /src/ftask.php
parent006561454093d44a789463d531cfbc640c519867 (diff)
parent2c862aa5c6ac4afe4005582fc836b13775a99eac (diff)
downloadboca-aaee4537fc9201e9d6a242583d82fd1bea97928c.tar.gz
boca-aaee4537fc9201e9d6a242583d82fd1bea97928c.zip
Merge branch 'devel'
Diffstat (limited to 'src/ftask.php')
-rw-r--r--src/ftask.php11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/ftask.php b/src/ftask.php
index 73336c3..c54503a 100644
--- a/src/ftask.php
+++ b/src/ftask.php
@@ -396,7 +396,7 @@ function DBNewTask($param, $c=null, $autotask=false) {
$tasknumber = $a["nexttask"] + 1;
DBExec($c, "update sitetable set sitenexttask=$tasknumber" .
" where sitenumber=$site and contestnumber=$contest and sitenexttask<$tasknumber", "DBNewTask(update site)");
- $taskinc = myunique();
+ $taskinc = myunique($tasknumber);
if(($taskinc % 2) == 0) $taskinc--;
if($autotask) $taskinc++;
$tasknumber = $taskinc;
@@ -435,12 +435,17 @@ function DBNewTask($param, $c=null, $autotask=false) {
} else $oid="NULL";
if($taskinc >= $tasknumber) {
- while(!DBExecNonStop($c, "INSERT INTO tasktable (contestnumber, sitenumber, tasknumber, usernumber, taskdate, " .
+ while(true) {
+ DBExec($c,"SAVEPOINT sp" . $tasknumber,"DBNewTask(insert task sp)");
+ if(DBExecNonStop($c, "INSERT INTO tasktable (contestnumber, sitenumber, tasknumber, usernumber, taskdate, " .
"taskdatediff, taskdatediffans, taskfilename, taskdata, taskstatus, taskdesc, tasksystem, ".
"color, colorname, updatetime) " .
"VALUES ($contest, $site, $tasknumber, $user, $taskdate, $taskdatediff, $taskdatediffans, '$filename', $oid, '$status', " .
"'$desc', '$sys', '$color', '$colorname', $updatetime)",
- "DBNewTask(insert task)")) {
+ "DBNewTask(insert task)")) {
+ break;
+ }
+ DBExec($c,"ROLLBACK TO SAVEPOINT sp" . $tasknumber,"DBNewTask(insert task sp rollback)");
$tasknumber+=2;
if($tasknumber > $taskinc + 6) {
DBExec($c, "INSERT INTO tasktable (contestnumber, sitenumber, tasknumber, usernumber, taskdate, " .