]> git.mxchange.org Git - friendica.git/blobdiff - mod/worker.php
Merge pull request #3769 from annando/show-forum-posts
[friendica.git] / mod / worker.php
index aebffed7447d36313b7ff96ae26bfdc7d1f9b687..947656ab7c2eebd4bab04384b906c939544ede6d 100644 (file)
@@ -5,17 +5,19 @@
  */
 require_once("include/poller.php");
 
-use \Friendica\Core\Config;
-use \Friendica\Core\PConfig;
+use Friendica\Core\Config;
+use Friendica\Core\PConfig;
 
 function worker_init($a){
 
-       if (!Config::get("system", "frontend_worker") OR !Config::get("system", "worker")) {
+       if (!Config::get("system", "frontend_worker")) {
                return;
        }
 
-       // We don't need the following lines if we can execute background jobs
+       // We don't need the following lines if we can execute background jobs.
+       // So we just wake up the worker if it sleeps.
        if (function_exists("proc_open")) {
+               call_worker_if_idle();
                return;
        }
 
@@ -39,11 +41,15 @@ function worker_init($a){
                // But since it doesn't destroy anything, we just try to get more execution time in any way.
                set_time_limit(0);
 
-               poller_execute($r[0]);
+               if (poller_claim_process($r[0])) {
+                       poller_execute($r[0]);
+               }
        }
 
        call_worker();
 
+       poller_unclaim_process();
+
        $a->end_process();
 
        logger("Front end worker ended: ".getmypid());