From c9b1ffcb5d47aa1cd0c0812c55bd1a3301cf834c Mon Sep 17 00:00:00 2001 From: Adam Dickmeiss Date: Thu, 4 Oct 2001 00:37:58 +0000 Subject: [PATCH] Fixes for GNU threads (not working yet). --- configure.in | 4 ++-- server/statserv.c | 14 +++++++++++--- util/nmem.c | 16 +++++++++++----- 3 files changed, 24 insertions(+), 10 deletions(-) diff --git a/configure.in b/configure.in index 5dca9ce..9da2915 100644 --- a/configure.in +++ b/configure.in @@ -1,6 +1,6 @@ dnl YAZ Toolkit, Index Data 1994-2001 dnl See the file LICENSE for details. -dnl $Id: configure.in,v 1.46 2001-10-03 23:55:18 adam Exp $ +dnl $Id: configure.in,v 1.47 2001-10-04 00:37:58 adam Exp $ AC_INIT(include/yaz/yaz-version.h) AM_INIT_AUTOMAKE(yaz, 1.7) dnl @@ -126,7 +126,7 @@ AC_SUBST(LIBTHREAD) HAVETHREADS=0 LIBTHREAD="" dnl -AC_ARG_ENABLE(pth, [ --disable-pth disable GNU threads],[enable_pth=$enableval],[enable_pth=yes]) +AC_ARG_ENABLE(pth, [ --enable-pth enable GNU threads],[enable_pth=$enableval],[enable_pth=no]) AC_SUBST(LIBPTH) if test "$enable_pth" = "yes"; then OLIBS=$LIBS diff --git a/server/statserv.c b/server/statserv.c index f4ab5c2..60fc8d3 100644 --- a/server/statserv.c +++ b/server/statserv.c @@ -7,7 +7,10 @@ * Chas Woodfield, Fretwell Downing Informatics. * * $Log: statserv.c,v $ - * Revision 1.74 2001-10-03 23:55:18 adam + * Revision 1.75 2001-10-04 00:37:58 adam + * Fixes for GNU threads (not working yet). + * + * Revision 1.74 2001/10/03 23:55:18 adam * GNU threads support. * * Revision 1.73 2001/06/28 09:27:06 adam @@ -731,10 +734,15 @@ static void listener(IOCHAN h, int event) pth_attr_t attr; pth_t child_thread; - pth_attr_init (attr); + attr = pth_attr_new (); pth_attr_set (attr, PTH_ATTR_JOINABLE, FALSE); + pth_attr_set (attr, PTH_ATTR_STACK_SIZE, 32*1024); + pth_attr_set (attr, PTH_ATTR_NAME, "session"); + yaz_log (LOG_LOG, "pth_spawn"); child_thread = pth_spawn (attr, new_session, new_line); +#if 0 pth_attr_destroy (attr); +#endif } else new_session(new_line); @@ -1014,7 +1022,7 @@ int check_options(int argc, char **argv) control_block.dynamic = 0; break; case 'T': -#if HAVE_PTHREAD_H +#if _REENTRANT control_block.dynamic = 0; control_block.threads = 1; #else diff --git a/util/nmem.c b/util/nmem.c index a2255b2..1b191c4 100644 --- a/util/nmem.c +++ b/util/nmem.c @@ -4,7 +4,10 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: nmem.c,v $ - * Revision 1.28 2001-10-03 23:55:18 adam + * Revision 1.29 2001-10-04 00:37:58 adam + * Fixes for GNU threads (not working yet). + * + * Revision 1.28 2001/10/03 23:55:18 adam * GNU threads support. * * Revision 1.27 2001/09/27 12:09:18 adam @@ -153,8 +156,7 @@ static pth_mutex_t nmem_mutex; struct nmem_mutex { #ifdef WIN32 CRITICAL_SECTION m_handle; -#endif -#if _REENTRANT +#elif _REENTRANT #if HAVE_PTHREAD_H pthread_mutex_t m_handle; @@ -479,8 +481,12 @@ void nmem_init (void) { #ifdef WIN32 InitializeCriticalSection(&critical_section); -#elif HAVE_PTH_H -#ifdef __REENTRANT +#endif + +#ifdef _REENTRANT +#if HAVE_PTH_H + yaz_log (LOG_LOG, "pth_init"); + pth_init (); pth_mutex_init (&nmem_mutex); #endif #endif -- 1.7.10.4