From: Art Cancro Date: Sun, 17 Feb 2008 05:18:31 +0000 (+0000) Subject: The networker and RSS client each start up their own threads X-Git-Tag: v7.86~2477 X-Git-Url: https://code.citadel.org/?a=commitdiff_plain;h=b3a83372f453aa56076667cae44a5d9122892655;p=citadel.git The networker and RSS client each start up their own threads as well, so they also need private CitContext structures. --- diff --git a/citadel/modules/network/serv_network.c b/citadel/modules/network/serv_network.c index ee0152ced..4fc32f910 100644 --- a/citadel/modules/network/serv_network.c +++ b/citadel/modules/network/serv_network.c @@ -2029,6 +2029,13 @@ void *network_do_queue(void *args) { static time_t last_run = 0L; struct RoomProcList *ptr; int full_processing = 1; + struct CitContext networkerCC; + + /* Give the networker its own private CitContext */ + memset(&networkerCC, 0, sizeof(struct CitContext)); + networkerCC.internal_pgm = 1; + networkerCC.cs_pid = 0; + pthread_setspecific(MyConKey, (void *)&networkerCC ); /* * Run the full set of processing tasks no more frequently @@ -2194,7 +2201,6 @@ CTDL_MODULE_INIT(network) CtdlRegisterProtoHook(cmd_snet, "SNET", "Set network config"); CtdlRegisterProtoHook(cmd_netp, "NETP", "Identify as network poller"); CtdlRegisterProtoHook(cmd_nsyn, "NSYN", "Synchronize room to node"); -// CtdlRegisterSessionHook(network_do_queue, EVT_TIMER); CtdlRegisterRoomHook(network_room_handler); CtdlRegisterCleanupHook(destroy_network_queue_room); } diff --git a/citadel/modules/rssclient/serv_rssclient.c b/citadel/modules/rssclient/serv_rssclient.c index 00fe598f1..78afc9b87 100644 --- a/citadel/modules/rssclient/serv_rssclient.c +++ b/citadel/modules/rssclient/serv_rssclient.c @@ -591,14 +591,15 @@ void *rssclient_scan(void *args) { static time_t last_run = 0L; static int doing_rssclient = 0; struct rssnetcfg *rptr = NULL; + struct CitContext rssclientCC; + + /* Give this thread its own private CitContext */ + memset(&rssclientCC, 0, sizeof(struct CitContext)); + rssclientCC.internal_pgm = 1; + rssclientCC.cs_pid = 0; + pthread_setspecific(MyConKey, (void *)&rssclientCC ); CtdlThreadAllocTSD(); - /* - * Run RSS client no more frequently than once every n seconds - */ -// if ( (time(NULL) - last_run) < config.c_net_freq ) { -// return; -// } /* * This is a simple concurrency check to make sure only one rssclient run @@ -635,7 +636,6 @@ CTDL_MODULE_INIT(rssclient) if (threading) { #ifdef HAVE_EXPAT -// CtdlRegisterSessionHook(rssclient_scan, EVT_TIMER); CtdlThreadSchedule ("RSS Client", CTDLTHREAD_BIGSTACK, rssclient_scan, NULL, 0); #else lprintf(CTDL_INFO, "This server is missing the Expat XML parser. RSS client will be disabled.\n"); diff --git a/citadel/sysdep.c b/citadel/sysdep.c index 164cafd5a..c55c0ca69 100644 --- a/citadel/sysdep.c +++ b/citadel/sysdep.c @@ -141,6 +141,7 @@ void vlprintf(enum LogLevel loglevel, const char *format, va_list arg_ptr) /* Promote to time_t; types differ on some OSes (like darwin) */ unixtime = tv.tv_sec; localtime_r(&unixtime, &tim); +/* if (CC->cs_pid != 0) { sprintf(buf, "%04d/%02d/%02d %2d:%02d:%02d.%06ld [%3d] ", @@ -155,6 +156,11 @@ void vlprintf(enum LogLevel loglevel, const char *format, va_list arg_ptr) tim.tm_mday, tim.tm_hour, tim.tm_min, tim.tm_sec, (long)tv.tv_usec); } +FIXME temp i want to see CC */ + sprintf(buf, + "%2d:%02d:%02d.%06ld 0x%08lx ", + tim.tm_hour, tim.tm_min, + tim.tm_sec, (long)tv.tv_usec, CC); vsnprintf(buf2, SIZ, format, arg_ptr); fprintf(stderr, "%s%s", buf, buf2);