diff --git a/plugins/experimental/stale_while_revalidate/stale_while_revalidate.c b/plugins/experimental/stale_while_revalidate/stale_while_revalidate.c index c130af42304..54cb3d3112f 100644 --- a/plugins/experimental/stale_while_revalidate/stale_while_revalidate.c +++ b/plugins/experimental/stale_while_revalidate/stale_while_revalidate.c @@ -367,6 +367,9 @@ fetch_resource(TSCont cont, TSEvent event ATS_UNUSED, void *edata ATS_UNUSED) TSCont consume_cont; // struct sockaddr_in client_addr; TSMLoc connection_hdr_loc, connection_hdr_dup_loc; + TSMutex mutex; + + mutex = TSMutexCreate(); state = (StateInfo *)TSContDataGet(cont); @@ -392,7 +395,7 @@ fetch_resource(TSCont cont, TSEvent event ATS_UNUSED, void *edata ATS_UNUSED) if (state) { TSDebug(PLUGIN_NAME, "Lets do the lookup"); - consume_cont = TSContCreate(consume_resource, NULL); + consume_cont = TSContCreate(consume_resource, mutex); TSContDataSet(consume_cont, (void *)state); if (state->async_req) { @@ -469,6 +472,9 @@ main_plugin(TSCont cont, TSEvent event, void *edata) TSMLoc loc, warn_loc; TSHttpStatus http_status; config_t *plugin_config; + TSMutex mutex; + + mutex = TSMutexCreate(); switch (event) { // Is this the proper event? @@ -528,7 +534,7 @@ main_plugin(TSCont cont, TSEvent event, void *edata) state->async_req = true; TSHttpTxnCacheLookupStatusSet(txn, TS_CACHE_LOOKUP_HIT_FRESH); // TSHttpTxnReenable(txn, TS_EVENT_HTTP_CONTINUE); - fetch_cont = TSContCreate(fetch_resource, NULL); + fetch_cont = TSContCreate(fetch_resource, mutex); TSContDataSet(fetch_cont, (void *)state); TSContSchedule(fetch_cont, 0, TS_THREAD_POOL_TASK); TSHttpTxnReenable(txn, TS_EVENT_HTTP_CONTINUE); @@ -541,7 +547,7 @@ main_plugin(TSCont cont, TSEvent event, void *edata) state->async_req = false; state->txn = txn; state->main_cont = cont; // we need this for the warning header callback. not sure i like it, but it works. - fetch_cont = TSContCreate(fetch_resource, NULL); + fetch_cont = TSContCreate(fetch_resource, mutex); TSContDataSet(fetch_cont, (void *)state); TSContSchedule(fetch_cont, 0, TS_THREAD_POOL_NET); } else {