function do_pass() { $int_max = 2147483647; $now = time(); $insts = BossaJobInst::enum("timeout < {$now}"); if (!count($insts)) { return false; } foreach ($insts as $inst) { BossaDb::start_transaction(); $inst = BossaJobInst::lookup_id($inst->id); // reread instance within transation if ($inst->transition_time < $now) { $job = BossaJob::lookup_id($inst->job_id); $user = BoincUser::lookup_id($inst->user_id); BossaUser::lookup($user); job_timed_out($job, $inst, $user); } $inst->update("timeout={$int_max}"); BossaDb::commit(); } return true; }
error_page("Can't connect to database server"); } if (!$db->table_exists('bossa_app')) { admin_page_head("Create Bossa database"); $db_name = $db->db_name; echo "\n The database tables for Bossa don't seem to exist.\n To create them, go to ~/boinc/db and type\n <pre>\nmysql {$db_name} < bossa_schema.sql\nmysql {$db_name} < bossa_constraints.sql\n</pre>\n Then <a href=bossa_admin.php>reload this page</a>.\n "; admin_page_tail(); exit; } BossaUser::lookup($user); $action = get_str('action', true); switch ($action) { case 'add_app': $name = BossaDb::escape_string(get_str('app_name')); $short_name = get_str('short_name'); $description = BossaDb::escape_string(get_str('description')); $training_course = get_str('training_course', true); if (strlen($training_course)) { $course = BoltCourse::lookup_name($training_course); if (!$course) { error_page("No course named {$training_course}"); } $courseid = $course->id; } else { $courseid = 0; } $time_estimate = get_str('time_estimate'); if (!$time_estimate) { $time_estimate = 60; } $time_limit = get_str('time_limit');