function get_info_or_ask() { if (isset($_GET["id"])) { $info = list_load_info($_GET["id"]); } else { if (isset($_GET["code"]) && isset($_GET["user"])) { $info = list_load_info_code($_GET["code"], $_GET['user']); } else { $info['lcode'] = $info['luser'] = $info['ltitle'] = $info['gcode'] = $info['ldirec'] = ""; } } export_list_info_js($info); return $info; }
function look_if_available($info) { global $dbh; if (isset($info["ljob"])) { $query = sprintf("SELECT exit_code FROM jobs WHERE rec_id=%u", $info['ljob']); $result = $dbh->query($query); $ecode = $result->fetchColumn(); if (isset($ecode) && $ecode == 0) { // The results are available echo "&available"; return; } else { if (isset($ecode) && $ecode != 0) { // The processing encountered an error echo "&procerror&{$ecode}"; return; } else { echo "&waiting"; return; } } } if (gene_names_check($info["ldir"], $info["gdir"], $unfound, $duplicates)) { echo "&synon"; return; } $jid = start_job("graficatore/cluster.sh {$info['ldir']} {$info['gdir']} " . "10000 {$info['lcode']}", $info['ldir'] . "/jobout.txt", $info['ldir'] . "/joberr.txt"); $query = sprintf("UPDATE lists SET job_id=%u WHERE rec_id=%u", $jid, $info['lid']); if ($dbh->exec($query) != 1) { echo "&procerror&12"; return; } $info = list_load_info($info['lid']); // waiting echo "&waiting"; return; }
if ($i === $gene) { $genes[$k] = $syn; } $genes[$k] .= "\n"; } file_put_contents($filename, $genes, LOCK_EX); $genes = file($filename, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); if (in_array($gene, $genes, true)) { echo "&error 4"; } else { return_unfound_and_duplicates($info); } } # Main if (isset($_GET["id"])) { $info = list_load_info($_GET["id"]); } else { if (isset($_GET["code"]) && isset($_GET["user"])) { $info = list_load_info_code($_GET["code"], $_GET["user"]); } else { echo "&error 1"; exit(0); } } // synonim lock $fp = fopen($info['ldir'] . "/synonim.lock", "w"); if (!flock($fp, LOCK_EX)) { // do an exclusive lock echo "&error 5"; exit(0); }
function list_load_info_code($code, $user) { global $dbh; $query = sprintf("SELECT lists.rec_id FROM lists\n INNER JOIN users ON lists.user_id = users.rec_id \n WHERE lists.code=%s AND users.user=%s", $dbh->quote($code), $dbh->quote($user)); $result = $dbh->query($query); $linfo = $result->fetchColumn(); return list_load_info($linfo); }