]> git.pond.sub.org Git - empserver/blobdiff - src/server/update.c
Indented with src/scripts/indent-emp.
[empserver] / src / server / update.c
index 22818fde6b2519e195fa9b21e73acd6974bcb4c6..f89817e301a07e814d0422708d925ab39fd6724d 100644 (file)
 #include "prototypes.h"
 #include "optlist.h"
 
-empth_sem_t    *update_sem;
+empth_sem_t *update_sem;
 
-extern void update_main();
-extern void update_wait();
-time_t  update_time;
+extern void update_main();
+extern void update_wait();
+time_t update_time;
 
 /*ARGSUSED*/
 void
 update_sched(argv)
-void   *argv;
+void *argv;
 {
-       extern  int s_p_etu;
-       extern  int etu_per_update;
-       extern  int adj_update;
-       extern  int update_window;
-       s_char  *kw;
-       int     hour[2];
-       int     wind;
-       time_t  now, delta;
+    extern int s_p_etu;
+    extern int etu_per_update;
+    extern int adj_update;
+    extern int update_window;
+    s_char *kw;
+    int hour[2];
+    int wind;
+    time_t now, delta;
 
-       update_sem = empth_sem_create("Update", 0);
-       empth_create(PP_SCHED, update_wait, (50*1024), 0, "UpdateWait",
-               "Waits until players idle", 0);
+    update_sem = empth_sem_create("Update", 0);
+    empth_create(PP_SCHED, update_wait, (50 * 1024), 0, "UpdateWait",
+                "Waits until players idle", 0);
+    time(&now);
+    (void)gamehours(now, hour);
+    if (NULL != (kw = kw_find("s_p_etu")))
+       kw_parse(CF_VALUE, kw, &s_p_etu);
+    if (NULL != (kw = kw_find("etu_per_update")))
+       kw_parse(CF_VALUE, kw, &etu_per_update);
+    if (NULL != (kw = kw_find("adj_update")))
+       kw_parse(CF_VALUE, kw, &adj_update);
+    if (NULL != (kw = kw_find("update_window")))
+       kw_parse(CF_VALUE, kw, &update_window);
+    if (s_p_etu <= 0) {
+       logerror("bad value for s_p_etu (%d)", s_p_etu);
+       s_p_etu = 2 * 60;
+       logerror("setting s_p_etu to %d", s_p_etu);
+    }
+    while (1) {
        time(&now);
-       (void) gamehours(now, hour);
-       if (NULL != (kw = kw_find("s_p_etu")))
-               kw_parse(CF_VALUE, kw, &s_p_etu);
-       if (NULL != (kw = kw_find("etu_per_update")))
-               kw_parse(CF_VALUE, kw, &etu_per_update);
-       if (NULL != (kw = kw_find("adj_update")))
-               kw_parse(CF_VALUE, kw, &adj_update);
-       if (NULL != (kw = kw_find("update_window")))
-               kw_parse(CF_VALUE, kw, &update_window);
-       if (s_p_etu <= 0) {
-               logerror("bad value for s_p_etu (%d)", s_p_etu);
-               s_p_etu = 2 * 60;
-               logerror("setting s_p_etu to %d", s_p_etu);
+       next_update_time(&now, &update_time, &delta);
+       if (update_window > 0) {
+           wind = (random() % update_window);
+           update_time += wind;
+           delta += wind;
        }
-       while (1) {
-               time(&now);
-               next_update_time(&now, &update_time, &delta);
-               if (update_window > 0) {
-                       wind = (random() % update_window);
-                       update_time += wind;
-                       delta += wind;
-               }
-               logerror("Next update at %s", ctime(&update_time));
-               logerror("Next update in %d seconds", delta);
-               /* sleep until update is scheduled to go off */
-               empth_sleep(update_time);
-               time(&now);
-               now += adj_update;
-               if (!gamehours(now, hour)) {
-                       logerror("No update permitted (hours restriction)");
-                       continue;
-               }
-               if (!updatetime(&now)) {
-                       logerror("No update wanted");
-                       continue;
-               }
-               if (updates_disabled()) {
-                       logerror("Updates disabled...skipping update");
-                       continue;
-               }
-               empth_sem_signal(update_sem);
+       logerror("Next update at %s", ctime(&update_time));
+       logerror("Next update in %d seconds", delta);
+       /* sleep until update is scheduled to go off */
+       empth_sleep(update_time);
+       time(&now);
+       now += adj_update;
+       if (!gamehours(now, hour)) {
+           logerror("No update permitted (hours restriction)");
+           continue;
+       }
+       if (!updatetime(&now)) {
+           logerror("No update wanted");
+           continue;
+       }
+       if (updates_disabled()) {
+           logerror("Updates disabled...skipping update");
+           continue;
        }
-       /*NOTREACHED*/
+       empth_sem_signal(update_sem);
+    }
+    /*NOTREACHED*/
 }
 
 /*ARGSUSED*/
 void
 update_wait(argv)
-       void    *argv;
+void *argv;
 {
-       struct  player *p;
-       int     running;
-       time_t  now;
-       int     stacksize;
-       struct  player *dp;
+    struct player *p;
+    int running;
+    time_t now;
+    int stacksize;
+    struct player *dp;
 
-       while (1) {
-               empth_sem_wait(update_sem);
-               running = 0;
-               for (p = player_next(0); p != 0; p = player_next(p)) {
-                       if (p->state != PS_PLAYING)
-                               continue;
-                       if (p->command) {
-                               pr_flash(p, "Update aborting command\n");
-                               p->aborted = 1;
-                               empth_wakeup(p->proc);
-                               running++;
-                       }
-               }
-               time(&now);
-               if (running) {
-                       /* sleep a few, wait for aborts to take effect */
-                       empth_sleep(now + 2);
-               }
-               /* 
-                * we rely on the fact that update's priority is the highest
-                * in the land so it can finish before it yields.
-                */
-               dp = player_new(0, 0);
-               stacksize= 100000 +
-/* finish_sects */        WORLD_X*WORLD_Y*(2*sizeof(double)+sizeof(s_char *));
-                       
-               empth_create(PP_UPDATE, update_main, stacksize, 0,
-                       "UpdateRun", "Updates the world", dp);
+    while (1) {
+       empth_sem_wait(update_sem);
+       running = 0;
+       for (p = player_next(0); p != 0; p = player_next(p)) {
+           if (p->state != PS_PLAYING)
+               continue;
+           if (p->command) {
+               pr_flash(p, "Update aborting command\n");
+               p->aborted = 1;
+               empth_wakeup(p->proc);
+               running++;
+           }
        }
-       /*NOTREACHED*/
+       time(&now);
+       if (running) {
+           /* sleep a few, wait for aborts to take effect */
+           empth_sleep(now + 2);
+       }
+       /* 
+        * we rely on the fact that update's priority is the highest
+        * in the land so it can finish before it yields.
+        */
+       dp = player_new(0, 0);
+       stacksize = 100000 +
+/* finish_sects */ WORLD_X * WORLD_Y * (2 * sizeof(double) +
+                                                   sizeof(s_char *));
+
+       empth_create(PP_UPDATE, update_main, stacksize, 0,
+                    "UpdateRun", "Updates the world", dp);
+    }
+    /*NOTREACHED*/
 }