Browse Source

Don't fail silently if the job fifo is not ready.

default 2 years ago
parent
commit
28d1da0a81
3 changed files with 9 additions and 1 deletions
  1. 1 1
      data.c
  2. 7 0
      httpd.c
  3. 1 0
      snac.h

+ 1 - 1
data.c

@@ -1407,7 +1407,7 @@ void enqueue_output_raw(const char *keyid, const char *seckey,
     qmsg = xs_dict_append(qmsg, "seckey", seckey);
 
     /* if it's to be sent right now, bypass the disk queue and post the job */
-    if (retries == 0)
+    if (retries == 0 && job_fifo_ready())
         job_post(qmsg);
     else {
         qmsg = _enqueue_put(fn, qmsg);

+ 7 - 0
httpd.c

@@ -251,6 +251,13 @@ static sem_t job_sem;
 xs_list *job_fifo = NULL;
 
 
+int job_fifo_ready(void)
+/* returns true if the job fifo is ready */
+{
+    return job_fifo != NULL;
+}
+
+
 void job_post(const xs_val *job)
 /* posts a job for the threads to process it */
 {

+ 1 - 0
snac.h

@@ -207,5 +207,6 @@ int snac_init(const char *_basedir);
 int adduser(const char *uid);
 int resetpwd(snac *snac);
 
+int job_fifo_ready(void);
 void job_post(const xs_val *job);
 void job_wait(xs_val **job);