makeing osrfSystemCacheInit() a "public" function. pushing osrfSystemCacheInit(...
authorerickson <erickson@9efc2488-bf62-4759-914b-345cdb29e865>
Mon, 11 Feb 2008 18:49:44 +0000 (18:49 +0000)
committererickson <erickson@9efc2488-bf62-4759-914b-345cdb29e865>
Mon, 11 Feb 2008 18:49:44 +0000 (18:49 +0000)
git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1247 9efc2488-bf62-4759-914b-345cdb29e865

include/opensrf/osrf_system.h
src/libopensrf/osrf_cache.c
src/libopensrf/osrf_prefork.c
src/libopensrf/osrf_system.c

index 12243a4..24dfacb 100644 (file)
@@ -52,4 +52,7 @@ int osrf_system_shutdown( void );
 void osrfSystemIgnoreTransportClient();
 
 
 void osrfSystemIgnoreTransportClient();
 
 
+/** Initialize the cache connection */
+int osrfSystemInitCache(void);
+
 #endif
 #endif
index 389add1..16c6a54 100644 (file)
@@ -20,6 +20,7 @@ static time_t _osrfCacheMaxSeconds = -1;
 
 int osrfCacheInit( const char* serverStrings[], int size, time_t maxCacheSeconds ) {
        if( !(serverStrings && size > 0) ) return -1;
 
 int osrfCacheInit( const char* serverStrings[], int size, time_t maxCacheSeconds ) {
        if( !(serverStrings && size > 0) ) return -1;
+    osrfCacheCleanup(); /* in case we've already been init-ed */
 
        int i;
        _osrfCache = mc_new();
 
        int i;
        _osrfCache = mc_new();
index a5d5794..46d9975 100644 (file)
@@ -177,6 +177,8 @@ static int prefork_child_init_hook(prefork_child* child) {
 
        if(!child) return -1;
        osrfLogDebug( OSRF_LOG_MARK, "Child init hook for child %d", child->pid);
 
        if(!child) return -1;
        osrfLogDebug( OSRF_LOG_MARK, "Child init hook for child %d", child->pid);
+
+    osrfSystemInitCache();
        char* resc = va_list_to_string("%s_drone",child->appname);
 
    /* if we're a source-client, tell the logger now that we're a new process*/
        char* resc = va_list_to_string("%s_drone",child->appname);
 
    /* if we're a source-client, tell the logger now that we're a new process*/
index f7d30ed..29d5aa6 100644 (file)
@@ -3,7 +3,6 @@
 #include <opensrf/osrf_prefork.h>
 #include <signal.h>
 
 #include <opensrf/osrf_prefork.h>
 #include <signal.h>
 
-static int _osrfSystemInitCache( void );
 static void report_child_status( pid_t pid, int status );
 struct child_node;
 typedef struct child_node ChildNode;
 static void report_child_status( pid_t pid, int status );
 struct child_node;
 typedef struct child_node ChildNode;
@@ -38,7 +37,7 @@ int osrf_system_bootstrap_client( char* config_file, char* contextnode ) {
        return osrfSystemBootstrapClientResc(config_file, contextnode, NULL);
 }
 
        return osrfSystemBootstrapClientResc(config_file, contextnode, NULL);
 }
 
-static int _osrfSystemInitCache( void ) {
+int osrfSystemInitCache( void ) {
 
        jsonObject* cacheServers = osrf_settings_host_value_object("/cache/global/servers/server");
        char* maxCache = osrf_settings_host_value("/cache/global/max_cache_time");
 
        jsonObject* cacheServers = osrf_settings_host_value_object("/cache/global/servers/server");
        char* maxCache = osrf_settings_host_value("/cache/global/max_cache_time");
@@ -98,8 +97,6 @@ int osrfSystemBootstrap( char* hostname, char* configfile, char* contextNode ) {
        jsonObject* apps = osrf_settings_host_value_object("/activeapps/appname");
        osrfStringArray* arr = osrfNewStringArray(8);
        
        jsonObject* apps = osrf_settings_host_value_object("/activeapps/appname");
        osrfStringArray* arr = osrfNewStringArray(8);
        
-       _osrfSystemInitCache();
-
        if(apps) {
                int i = 0;
 
        if(apps) {
                int i = 0;