Tue Jul 13 06:02:54 PDT 2010
- Previous message: [Slony1-patches] some problem current head for pg91dev
- Next message: [Slony1-patches] monitor the startup status of localListenThread
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
--- src/slon/local_listen.c | 9 +++++++++ src/slon/slon.c | 9 +++++++++ src/slon/slon.h | 2 +- 3 files changed, 19 insertions(+), 1 deletions(-) diff --git a/src/slon/local_listen.c b/src/slon/local_listen.c index e10efe7..9290ac5 100644 --- a/src/slon/local_listen.c +++ b/src/slon/local_listen.c @@ -77,6 +77,10 @@ localListenThread_main(/* @unused@ */ void *dummy) dstring_data(&query1), PQresultErrorMessage(res)); PQclear(res); dstring_free(&query1); + pthread_mutex_lock(&slon_wait_listen_lock); + slon_listen_started=0; + pthread_cond_signal(&slon_wait_listen_cond); + pthread_mutex_unlock(&slon_wait_listen_lock); slon_retry(); } PQclear(res); @@ -107,6 +111,10 @@ localListenThread_main(/* @unused@ */ void *dummy) PQclear(res); dstring_free(&query1); + pthread_mutex_lock(&slon_wait_listen_lock); + slon_listen_started=0; + pthread_cond_signal(&slon_wait_listen_cond); + pthread_mutex_unlock(&slon_wait_listen_lock); slon_abort(); } PQclear(res); @@ -116,6 +124,7 @@ localListenThread_main(/* @unused@ */ void *dummy) * other threads. */ pthread_mutex_lock(&slon_wait_listen_lock); + slon_listen_started=1; pthread_cond_signal(&slon_wait_listen_cond); pthread_mutex_unlock(&slon_wait_listen_lock); diff --git a/src/slon/slon.c b/src/slon/slon.c index 627de17..de05635 100644 --- a/src/slon/slon.c +++ b/src/slon/slon.c @@ -53,6 +53,7 @@ int sched_wakeuppipe[2]; pthread_mutex_t slon_wait_listen_lock; pthread_cond_t slon_wait_listen_cond; +int slon_listen_started=0; /* ---------- * Local data @@ -695,6 +696,14 @@ SlonMain(void) slon_retry(); } pthread_cond_wait(&slon_wait_listen_cond, &slon_wait_listen_lock); + if(!slon_listen_started) + { + /** + * The local listen thread did not start up properly. + */ + slon_log(SLON_FATAL,"main: localListenThread did not start\n"); + slon_abort(); + } pthread_mutex_unlock(&slon_wait_listen_lock); /* diff --git a/src/slon/slon.h b/src/slon/slon.h index b6e509a..57c1bf1 100644 --- a/src/slon/slon.h +++ b/src/slon/slon.h @@ -419,7 +419,7 @@ extern void Usage(char *const argv[]); extern int sched_wakeuppipe[]; extern pthread_mutex_t slon_wait_listen_lock; extern pthread_cond_t slon_wait_listen_cond; - +extern int slon_listen_started; /* ---------- * Functions in runtime_config.c -- 1.6.3.3 --------------010805010706030806040109--
- Previous message: [Slony1-patches] some problem current head for pg91dev
- Next message: [Slony1-patches] monitor the startup status of localListenThread
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Slony1-patches mailing list