Commit a585e9b0 authored by Geoff Simmons's avatar Geoff Simmons

Go back to the sleep interval in the constructor.

There was much more busy-wait looping than I expected.
parent 42ee1d06
...@@ -43,6 +43,7 @@ ...@@ -43,6 +43,7 @@
#include "cache/cache.h" #include "cache/cache.h"
#include "vcl.h" #include "vcl.h"
#include "vtim.h"
#include "vcc_if.h" #include "vcc_if.h"
...@@ -53,6 +54,7 @@ ...@@ -53,6 +54,7 @@
snprintf((rdr)->errbuf, (rdr)->errlen, "vmod file failure: " fmt, \ snprintf((rdr)->errbuf, (rdr)->errlen, "vmod file failure: " fmt, \
__VA_ARGS__) __VA_ARGS__)
#define INIT_SLEEP_INTERVAL 0.001
#define ERRMSG_LEN 128 #define ERRMSG_LEN 128
#define NO_ERR ("No error") #define NO_ERR ("No error")
...@@ -196,7 +198,6 @@ vmod_reader__init(VRT_CTX, struct VPFX(file_reader) **rdrp, ...@@ -196,7 +198,6 @@ vmod_reader__init(VRT_CTX, struct VPFX(file_reader) **rdrp,
struct sigevent sigev; struct sigevent sigev;
timer_t timerid; timer_t timerid;
struct itimerspec timerspec; struct itimerspec timerspec;
int flags;
CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC); CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
AN(rdrp); AN(rdrp);
...@@ -287,10 +288,8 @@ vmod_reader__init(VRT_CTX, struct VPFX(file_reader) **rdrp, ...@@ -287,10 +288,8 @@ vmod_reader__init(VRT_CTX, struct VPFX(file_reader) **rdrp,
AZ(rdr->info->mtime.tv_nsec); AZ(rdr->info->mtime.tv_nsec);
AZ(rdr->flags & (RDR_INITIALIZED | RDR_ERROR)); AZ(rdr->flags & (RDR_INITIALIZED | RDR_ERROR));
do { do {
AZ(pthread_rwlock_wrlock(&rdr->lock)); VTIM_sleep(INIT_SLEEP_INTERVAL);
flags = rdr->flags; } while ((rdr->flags & (RDR_INITIALIZED | RDR_ERROR)) == 0);
AZ(pthread_rwlock_unlock(&rdr->lock));
} while ((flags & (RDR_INITIALIZED | RDR_ERROR)) == 0);
if (rdr->flags & RDR_ERROR) { if (rdr->flags & RDR_ERROR) {
AN(strcmp(rdr->errbuf, NO_ERR)); AN(strcmp(rdr->errbuf, NO_ERR));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment