require_once('library/Mobile_Detect/Mobile_Detect.php');
require_once('include/features.php');
require_once('include/identity.php');
-
+require_once('include/pidfile.php');
require_once('update.php');
require_once('include/dbstructure.php');
} else {
$r = q("SELECT `contact`.`avatar-date` AS picdate FROM `contact` WHERE `contact`.`thumb` like '%%/%s'",
$common_filename);
- if(! count($r)){
+ if(! dba::is_result($r)){
$this->cached_profile_image[$avatar_image] = $avatar_image;
} else {
$this->cached_profile_picdate[$common_filename] = "?rev=".urlencode($r[0]['picdate']);
function save_timestamp($stamp, $value) {
$duration = (float)(microtime(true)-$stamp);
+ if (!isset($this->performance[$value])) {
+ // Prevent ugly E_NOTICE
+ $this->performance[$value] = 0;
+ }
+
$this->performance[$value] += (float)$duration;
$this->performance["marktime"] += (float)$duration;
$callstack = $this->callstack();
+ if (!isset($this->callstack[$value][$callstack])) {
+ // Prevent ugly E_NOTICE
+ $this->callstack[$value][$callstack] = 0;
+ }
+
$this->callstack[$value][$callstack] += (float)$duration;
}
return($this->is_friendica_app);
}
+ /**
+ * @brief Checks if the maximum load is reached
+ *
+ * @return bool Is the load reached?
+ */
+ function maxload_reached() {
+
+ $maxsysload = intval(get_config('system', 'maxloadavg'));
+ if ($maxsysload < 1)
+ $maxsysload = 50;
+
+ $load = current_load();
+ if ($load) {
+ if (intval($load) > $maxsysload) {
+ logger('system: load '.$load.' too high.');
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * @brief Checks if the process is already running
+ *
+ * @param string $taskname The name of the task that will be used for the name of the lockfile
+ * @param string $task The path and name of the php script
+ * @param int $timeout The timeout after which a task should be killed
+ *
+ * @return bool Is the process running?
+ */
+ function is_already_running($taskname, $task = "", $timeout = 540) {
+
+ $lockpath = get_lockpath();
+ if ($lockpath != '') {
+ $pidfile = new pidfile($lockpath, $taskname);
+ if ($pidfile->is_already_running()) {
+ logger("Already running");
+ if ($pidfile->running_time() > $timeout) {
+ $pidfile->kill();
+ logger("killed stale process");
+ // Calling a new instance
+ if ($task != "")
+ proc_run('php', $task);
+ }
+ return true;
+ }
+ }
+ return false;
+ }
}
/**
function check_plugins(&$a) {
$r = q("SELECT * FROM `addon` WHERE `installed` = 1");
- if(count($r))
+ if(dba::is_result($r))
$installed = $r;
else
$installed = array();
* @brief Redirect to another URL and terminate this process.
*/
function goaway($s) {
+ if (!strstr(normalise_link($s), "http://"))
+ $s = App::get_baseurl()."/".$s;
+
header("Location: $s");
killme();
}
$r = q("select theme from user where uid = %d limit 1",
intval($a->profile_uid)
);
- if($r)
+ if(dba::is_result($r))
$page_theme = $r[0]['theme'];
}
intval($uid)
);
- if($p && count($p)) {
+ if(dba::is_result($p)) {
$tmp_dob = substr($p[0]['dob'],5);
if(intval($tmp_dob)) {
$y = datetime_convert($tz,$tz,'now','Y');
$r = q("SELECT `id`,`network`,`url`,`thumb`, `rel` FROM `contact` WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 AND `thumb` != ''",
intval($uid)
);
- if(count($r)) {
+
+ if(dba::is_result($r)) {
foreach($r as $rr){
$url = normalise_link($rr['url']);
$ret[$url] = $rr;