Roxen.git / server / base_server / roxen.pike

version» Context lines:

Roxen.git/server/base_server/roxen.pike:1:   // This file is part of Roxen WebServer.   // Copyright © 1996 - 2004, Roxen IS.   //   // The Roxen WebServer main program.   //   // Per Hedbor, Henrik Grubbström, Pontus Hagland, David Hedbor and others.   // ABS and suicide systems contributed freely by Francesco Chemolli    - constant cvs_version="$Id: roxen.pike,v 1.970 2007/09/20 10:28:13 grubba Exp $"; + constant cvs_version="$Id: roxen.pike,v 1.971 2007/10/11 11:48:45 grubba Exp $";      //! @appears roxen   //!   //! The Roxen WebServer main program.      // The argument cache. Used by the image cache.   ArgCache argcache;      // Some headerfiles   #define IN_ROXEN
Roxen.git/server/base_server/roxen.pike:1109:    // Got a minimum of four refs to this:    // o One in the task array in bg_process_queue.    // o One on the stack in the call in bg_process_queue.    // o One as current_object in the stack frame.    // o One on the stack as argument to _refs.    int self_refs = _refs (this);   #ifdef DEBUG    if (self_refs < 4)    error ("Minimum ref calculation wrong - have only %d refs.\n", self_refs);   #endif -  if (stopping || self_refs <= 4) return; +  if (stopping || (self_refs <= 4) || !func) return; +  mixed err = catch {    func (@args); -  +  }; +  if (err) { +  catch { +  report_error(LOC_M(0, "Uncaught error in background process:") + +  "%s\n", describe_backtrace(err)); +  }; +  }    background_run (period, repeat, func, args);    }       //! @decl void set_period (int|float period);    //!    //! Changes the period to @[period] seconds between calls.    //!    //! @note    //! This does not change the currently ongoing period, if any. That    //! might be remedied.
Roxen.git/server/base_server/roxen.pike:4222:   {    catch {    return !key || (key->invalidp && key->invalidp());    };    return !key;   }      //! Invalidate (mark as stale) a cache key.   void invalidate(CacheKey key)   { -  if (!key) return; +  if (invalidp(key)) return;    catch {    if (key->invalidate) {    key->invalidate();    return;    }    };    if (key) destruct(key);   }      void create()