X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fmodules%2Frssclient%2Frss_atom_parser.c;h=7f1d612d624dbac9ff667d7ce454fd7d2a113fec;hb=fd29e13821d3aa616b03d447f92cfb2de112b31d;hp=a1f9b512d2a58f998987fefe3307ff7dcb37e049;hpb=97668dbe6f8483b76010503dc467636701c6f1ac;p=citadel.git diff --git a/citadel/modules/rssclient/rss_atom_parser.c b/citadel/modules/rssclient/rss_atom_parser.c index a1f9b512d..7f1d612d6 100644 --- a/citadel/modules/rssclient/rss_atom_parser.c +++ b/citadel/modules/rssclient/rss_atom_parser.c @@ -58,6 +58,8 @@ #include "event_client.h" #include "rss_atom_parser.h" +extern pthread_mutex_t RSSQueueMutex; + HashList *StartHandlers = NULL; HashList *EndHandlers = NULL; HashList *KnownNameSpaces = NULL; @@ -614,6 +616,9 @@ eNextState ParseRSSReply(AsyncIO *IO) long len; rssc = IO->Data; + pthread_mutex_lock(&RSSQueueMutex); + rssc->RefCount ++; + pthread_mutex_unlock(&RSSQueueMutex); ri = rssc->Item; rssc->CData = NewStrBufPlain(NULL, SIZ); rssc->Key = NewStrBuf(); @@ -675,6 +680,9 @@ shutdown: ///Cfg->next_poll = time(NULL) + config.c_net_freq; + pthread_mutex_lock(&RSSQueueMutex); + rssc->RefCount --; + pthread_mutex_unlock(&RSSQueueMutex); return eTerminateConnection; }