diff options
| author | Cassio de Campos <cassiopc@gmail.com> | 2017-10-24 14:58:09 +0000 |
|---|---|---|
| committer | Cassio de Campos <cassiopc@gmail.com> | 2017-10-24 14:58:09 +0000 |
| commit | aaee4537fc9201e9d6a242583d82fd1bea97928c (patch) | |
| tree | ff57c7f621382492910292b490d9c67e6f99e739 /src/ftask.php | |
| parent | 006561454093d44a789463d531cfbc640c519867 (diff) | |
| parent | 2c862aa5c6ac4afe4005582fc836b13775a99eac (diff) | |
| download | boca-aaee4537fc9201e9d6a242583d82fd1bea97928c.tar.gz boca-aaee4537fc9201e9d6a242583d82fd1bea97928c.zip | |
Merge branch 'devel'
Diffstat (limited to 'src/ftask.php')
| -rw-r--r-- | src/ftask.php | 11 |
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, " . |