You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(43) |
Nov
(15) |
Dec
(15) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(23) |
Feb
|
Mar
(25) |
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Karel G. <kg...@us...> - 2001-12-31 11:17:36
|
Update of /cvsroot/micomt/mico In directory usw-pr-cvs1:/tmp/cvs-serv1858 Modified Files: CHANGES.mt Log Message: - changed thread-pool concurrency model, it doesn't use separate accept thread for incoming connections any more ---------------------------------------------------------------------- Index: CHANGES.mt =================================================================== RCS file: /cvsroot/micomt/mico/CHANGES.mt,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -r1.25 -r1.26 *** CHANGES.mt 2001/12/21 20:24:56 1.25 --- CHANGES.mt 2001/12/31 11:17:32 1.26 *************** *** 1,3 **** --- 1,5 ---- + - changed thread-pool concurrency model, it doesn't use separate accept thread + for incoming connections any more - made global debug mutex not recursive - renamed swap16 to swap_16 because of name clash with OpenBSD's swap16 macro |
From: Karel G. <kg...@us...> - 2001-12-21 20:25:00
|
Update of /cvsroot/micomt/mico/orb In directory usw-pr-cvs1:/tmp/cvs-serv19868/orb Modified Files: codec.cc Log Message: - made global debug mutex not recursive - renamed swap16 to swap_16 because of name clash with OpenBSD's swap16 macro - fixed time service for compilation on *BSD - removed old gcc related params from configure - added checking for pthread's symbols in libc_r (needs for FreeBSD, OpenBSD) - added semaphore implementation based on mutex & condvar (needs for OpenBSD) it is used on OSes which doesn't provide POSIX implementation and semaphore.h Index: codec.cc =================================================================== RCS file: /cvsroot/micomt/mico/orb/codec.cc,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -r1.9 -r1.10 *** codec.cc 2001/10/26 20:00:00 1.9 --- codec.cc 2001/12/21 20:24:56 1.10 *************** *** 1018,1021 **** --- 1018,1022 ---- /**************************** CDREncoder ******************************/ + static inline void swap2 (void *d, const void *s) { *************** *** 1043,1048 **** ((CORBA::Octet *)d)[7] = ((CORBA::Octet *)s)[0]; } ! static inline void swap16 (void *d, const void *s) { ((CORBA::Octet *)d)[0] = ((CORBA::Octet *)s)[15]; --- 1044,1051 ---- ((CORBA::Octet *)d)[7] = ((CORBA::Octet *)s)[0]; } + ! // OpenBSD defines macro swap16 ! static inline void swap_16 (void *d, const void *s) { ((CORBA::Octet *)d)[0] = ((CORBA::Octet *)s)[15]; *************** *** 1221,1225 **** } else { CORBA::LongDouble d2; ! swap16 (&d2, &d); buf->put16 (&d2); } --- 1224,1228 ---- } else { CORBA::LongDouble d2; ! swap_16 (&d2, &d); buf->put16 (&d2); } *************** *** 1231,1235 **** } else { CORBA::Octet b2[16]; ! swap16 (b2, b); buf->put16 (b2); } --- 1234,1238 ---- } else { CORBA::Octet b2[16]; ! swap_16 (b2, b); buf->put16 (b2); } *************** *** 1712,1716 **** if (!buf->get16 (&d2)) return FALSE; ! swap16 (&d, &d2); #else CORBA::Octet b[16]; --- 1715,1719 ---- if (!buf->get16 (&d2)) return FALSE; ! swap_16 (&d, &d2); #else CORBA::Octet b[16]; *************** *** 1725,1729 **** if (!buf->get16 (b2)) return FALSE; ! swap16 (&b, &b2); mico_ieee2ldouble (b, d); #endif --- 1728,1732 ---- if (!buf->get16 (b2)) return FALSE; ! swap_16 (&b, &b2); mico_ieee2ldouble (b, d); #endif |
From: Karel G. <kg...@us...> - 2001-12-21 20:25:00
|
Update of /cvsroot/micomt/mico In directory usw-pr-cvs1:/tmp/cvs-serv19868 Modified Files: CHANGES.mt configure.in Log Message: - made global debug mutex not recursive - renamed swap16 to swap_16 because of name clash with OpenBSD's swap16 macro - fixed time service for compilation on *BSD - removed old gcc related params from configure - added checking for pthread's symbols in libc_r (needs for FreeBSD, OpenBSD) - added semaphore implementation based on mutex & condvar (needs for OpenBSD) it is used on OSes which doesn't provide POSIX implementation and semaphore.h Index: CHANGES.mt =================================================================== RCS file: /cvsroot/micomt/mico/CHANGES.mt,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -r1.24 -r1.25 *** CHANGES.mt 2001/12/14 16:25:17 1.24 --- CHANGES.mt 2001/12/21 20:24:56 1.25 *************** *** 1,3 **** --- 1,10 ---- + - made global debug mutex not recursive + - renamed swap16 to swap_16 because of name clash with OpenBSD's swap16 macro + - fixed time service for compilation on *BSD + - removed old gcc related params from configure + - added checking for pthread's symbols in libc_r (needs for FreeBSD, OpenBSD) + - added semaphore implementation based on mutex & condvar (needs for OpenBSD) + it is used on OSes which doesn't provide POSIX implementation and semaphore.h - fixed ssl support - removed _tpm static value from global MICO:: namespace into MTManager class Index: configure.in =================================================================== RCS file: /cvsroot/micomt/mico/configure.in,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -r1.30 -r1.31 *** configure.in 2001/12/19 18:54:47 1.30 --- configure.in 2001/12/21 20:24:56 1.31 *************** *** 289,295 **** AC_CHECK_LIB(pthread, open, use_pthreads=yes, use_pthreads=no) if test X"$use_pthreads" = Xyes; then ! AC_CHECK_HEADERS(pthread.h semaphore.h sched.h,, AC_MSG_ERROR(pthread header files incomplete) ) AC_DEFINE(HAVE_PTHREADS) SHLIBS="-lpthread" --- 289,296 ---- AC_CHECK_LIB(pthread, open, use_pthreads=yes, use_pthreads=no) if test X"$use_pthreads" = Xyes; then ! AC_CHECK_HEADERS(pthread.h sched.h,, AC_MSG_ERROR(pthread header files incomplete) ) + AC_CHECK_HEADERS(semaphore.h) AC_DEFINE(HAVE_PTHREADS) SHLIBS="-lpthread" *************** *** 299,305 **** AC_CHECK_LIB(c_r, pthread_create, use_pthreads=yes, use_pthreads=no) if test X"$use_pthreads" = Xyes; then ! AC_CHECK_HEADERS(pthread.h semaphore.h sched.h,, AC_MSG_ERROR(pthread header files incomplete) ) AC_DEFINE(HAVE_PTHREADS) #SHLIBS="-lpthread" --- 300,307 ---- AC_CHECK_LIB(c_r, pthread_create, use_pthreads=yes, use_pthreads=no) if test X"$use_pthreads" = Xyes; then ! AC_CHECK_HEADERS(pthread.h sched.h,, AC_MSG_ERROR(pthread header files incomplete) ) + AC_CHECK_HEADERS(semaphore.h) AC_DEFINE(HAVE_PTHREADS) #SHLIBS="-lpthread" *************** *** 395,401 **** AC_CHECK_LIB(pthread, open, use_pthreads=yes, use_pthreads=no) if test X"$use_pthreads" = Xyes; then ! AC_CHECK_HEADERS(pthread.h semaphore.h sched.h,, AC_MSG_ERROR(pthread header files incomplete) ) AC_DEFINE(HAVE_PTHREADS) SHLIBS="-lpthread" --- 397,404 ---- AC_CHECK_LIB(pthread, open, use_pthreads=yes, use_pthreads=no) if test X"$use_pthreads" = Xyes; then ! AC_CHECK_HEADERS(pthread.h sched.h,, AC_MSG_ERROR(pthread header files incomplete) ) + AC_CHECK_HEADERS(semaphore.h) AC_DEFINE(HAVE_PTHREADS) SHLIBS="-lpthread" *************** *** 403,409 **** AC_CHECK_LIB(c_r, pthread_create, use_pthreads=yes, use_pthreads=no) if test X"$use_pthreads" = Xyes; then ! AC_CHECK_HEADERS(pthread.h semaphore.h sched.h,, AC_MSG_ERROR(pthread header files incomplete) ) AC_DEFINE(HAVE_PTHREADS) #SHLIBS="-lpthread" --- 406,413 ---- AC_CHECK_LIB(c_r, pthread_create, use_pthreads=yes, use_pthreads=no) if test X"$use_pthreads" = Xyes; then ! AC_CHECK_HEADERS(pthread.h sched.h,, AC_MSG_ERROR(pthread header files incomplete) ) + AC_CHECK_HEADERS(semaphore.h) AC_DEFINE(HAVE_PTHREADS) #SHLIBS="-lpthread" *************** *** 549,558 **** fi - if test X"$use_mini_stl" = Xno; then - CXXFLAGS="$CXXFLAGS -ftemplate-depth-42" - fi - - # MICO_CHECK_CXX_FLAG(fno-rtti, [CXXFLAGS="$CXXFLAGS -fno-rtti"]) - CONF_PICFLAGS=-fPIC CONF_LDSOFLAGS=-fPIC --- 553,556 ---- *************** *** 560,578 **** CONF_EXCEPT_FLAGS="" - MICO_CHECK_CXX_FLAG(fexceptions, [ - HAVE_EX_FLAGS=yes - CONF_NO_EXCEPT_FLAGS=-fno-exceptions - CONF_EXCEPT_FLAGS="-fexceptions -O0" - CONF_EXCEPT_OPT_FLAGS="-fexceptions" - ], [ - HAVE_EX_FLAGS=no - CONF_NO_EXCEPT_FLAGS= - CONF_EXCEPT_FLAGS="-fhandle-exceptions -O0" - CONF_EXCEPT_OPT_FLAGS="-fhandle-exceptions -O0" - ]) - # workaround for compiling X11 headers with gcc 2.95 ! MICO_CHECK_CXX_FLAG(fpermissive, [CXXFLAGS="$CXXFLAGS -fpermissive"]) ! case $target in *aix*) --- 558,567 ---- CONF_EXCEPT_FLAGS="" # workaround for compiling X11 headers with gcc 2.95 ! # MICO_CHECK_CXX_FLAG(fpermissive, [CXXFLAGS="$CXXFLAGS -fpermissive"]) ! SAVE_CXXFLAGS=$CXXFLAGS ! CXXFLAGS="$SAVE_CXXFLAGS -fpermissive" ! AC_TRY_COMPILE([],[],, CXXFLAGS=$SAVE_CXXFLAGS) ! case $target in *aix*) |
From: Karel G. <kg...@us...> - 2001-12-21 20:25:00
|
Update of /cvsroot/micomt/mico/coss/time In directory usw-pr-cvs1:/tmp/cvs-serv19868/coss/time Modified Files: TimeService_help.cc Log Message: - made global debug mutex not recursive - renamed swap16 to swap_16 because of name clash with OpenBSD's swap16 macro - fixed time service for compilation on *BSD - removed old gcc related params from configure - added checking for pthread's symbols in libc_r (needs for FreeBSD, OpenBSD) - added semaphore implementation based on mutex & condvar (needs for OpenBSD) it is used on OSes which doesn't provide POSIX implementation and semaphore.h Index: TimeService_help.cc =================================================================== RCS file: /cvsroot/micomt/mico/coss/time/TimeService_help.cc,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** TimeService_help.cc 2001/10/26 19:59:55 1.2 --- TimeService_help.cc 2001/12/21 20:24:56 1.3 *************** *** 71,75 **** int r = gettimeofday (&tv, &tz); assert (r == 0); ! TimeBase::TdfT displacementV = timezone.tz_minuteswest; #else // where do we get the timezone from? --- 71,75 ---- int r = gettimeofday (&tv, &tz); assert (r == 0); ! TimeBase::TdfT displacementV = tz.tz_minuteswest; #else // where do we get the timezone from? |
From: Karel G. <kg...@us...> - 2001-12-21 20:25:00
|
Update of /cvsroot/micomt/mico/include/mico/os-thread In directory usw-pr-cvs1:/tmp/cvs-serv19868/include/mico/os-thread Modified Files: pthreads.h Log Message: - made global debug mutex not recursive - renamed swap16 to swap_16 because of name clash with OpenBSD's swap16 macro - fixed time service for compilation on *BSD - removed old gcc related params from configure - added checking for pthread's symbols in libc_r (needs for FreeBSD, OpenBSD) - added semaphore implementation based on mutex & condvar (needs for OpenBSD) it is used on OSes which doesn't provide POSIX implementation and semaphore.h Index: pthreads.h =================================================================== RCS file: /cvsroot/micomt/mico/include/mico/os-thread/pthreads.h,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -r1.27 -r1.28 *** pthreads.h 2001/11/24 19:45:26 1.27 --- pthreads.h 2001/12/21 20:24:56 1.28 *************** *** 374,377 **** --- 374,382 ---- * counter for resources shared between threads. */ + + #ifdef HAVE_SEMAPHORE_H + // the OS provides POSIX semaphore implementation + // in semaphore.h header file + class Semaphore __NAME( :public NamedObject ) { *************** *** 465,468 **** --- 470,507 ---- //@} }; + + #else // HAVE_SEMAPHORE_H + + // the OS doesn't provide POSIX semaphore implementation + // in semaphore.h header file so we will use own + // implementation based on mutex and condition variable + + class Semaphore __NAME(:public NamedObject) + { + Mutex _M_mutex; + CondVar _M_condition; + unsigned int _M_counter; + public: + enum ErrorType { + NoError, //!< No error on semaphore + NoPermission, //!< Permission denied + TryAgain, //!< Try again + SemInvalid, //!< Invalide semaphore + Interrupted, //!< Interrupted by signal + UnknownError //!< Unknow error + }; + + //! \name Constructor/Destructor + //@{ + Semaphore(unsigned int __value = 0); + ~Semaphore(); + //@} + + void wait(); + Semaphore::ErrorType trylock(); + void post(); + }; + + #endif // HAVE_SEMAPHORE_H /******************************* basic Thread class *********************************/ |
From: Karel G. <kg...@us...> - 2001-12-21 20:25:00
|
Update of /cvsroot/micomt/mico/orb/os-thread In directory usw-pr-cvs1:/tmp/cvs-serv19868/orb/os-thread Modified Files: pthreads.cc Log Message: - made global debug mutex not recursive - renamed swap16 to swap_16 because of name clash with OpenBSD's swap16 macro - fixed time service for compilation on *BSD - removed old gcc related params from configure - added checking for pthread's symbols in libc_r (needs for FreeBSD, OpenBSD) - added semaphore implementation based on mutex & condvar (needs for OpenBSD) it is used on OSes which doesn't provide POSIX implementation and semaphore.h Index: pthreads.cc =================================================================== RCS file: /cvsroot/micomt/mico/orb/os-thread/pthreads.cc,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -r1.28 -r1.29 *** pthreads.cc 2001/11/24 19:45:26 1.28 --- pthreads.cc 2001/12/21 20:24:56 1.29 *************** *** 40,45 **** #ifdef HAVE_THREADS ! //static pthread_mutex_t __debug_mutex = PTHREAD_MUTEX_INITIALIZER; ! static pthread_mutex_t __debug_mutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP; /*! --- 40,45 ---- #ifdef HAVE_THREADS ! static pthread_mutex_t __debug_mutex = PTHREAD_MUTEX_INITIALIZER; ! //static pthread_mutex_t __debug_mutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP; /*! *************** *** 160,163 **** --- 160,169 ---- } + + #ifdef HAVE_SEMAPHORE_H + + // the OS provides POSIX semaphore implementation + // in semaphore.h header file + // // Semaphore implementation *************** *** 194,197 **** --- 200,256 ---- sem_destroy( &s ); } + + #else // HAVE_SEMAPHORE_H + + // the OS doesn't provide POSIX semaphore implementation + // in semaphore.h header file so we will use own + // implementation based on mutex and condition variable + + + MICOMT::Semaphore::Semaphore(unsigned int __value) + : _M_counter(__value) + {} + + + MICOMT::Semaphore::~Semaphore() + {} + + + void + MICOMT::Semaphore::wait() + { + MICOMT::AutoLock __lock(_M_mutex); + + while(_M_counter == 0) + _M_condition.wait(_M_mutex); + _M_counter--; + } + + + MICOMT::Semaphore::ErrorType + MICOMT::Semaphore::trylock() + { + MICOMT::AutoLock __lock(_M_mutex); + + if (_M_counter == 0) + return MICOMT::Semaphore::TryAgain; + + return MICOMT::Semaphore::NoError; + } + + + void + MICOMT::Semaphore::post() + { + { + MICOMT::AutoLock __lock(_M_mutex); + _M_counter++; + } + + _M_condition.signal(); + } + + #endif // HAVE_SEMAPHORE_H + // |
From: Karel G. <kg...@us...> - 2001-12-19 18:54:54
|
Update of /cvsroot/micomt/mico In directory usw-pr-cvs1:/tmp/cvs-serv12102 Modified Files: configure.in Log Message: - first attempt to support *BSD Index: configure.in =================================================================== RCS file: /cvsroot/micomt/mico/configure.in,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -r1.29 -r1.30 *** configure.in 2001/11/24 19:45:26 1.29 --- configure.in 2001/12/19 18:54:47 1.30 *************** *** 297,302 **** use_threads=yes else ! echo "" ! AC_MSG_ERROR("Your platform does not support Solaris threads !") fi fi --- 297,314 ---- use_threads=yes else ! AC_CHECK_LIB(c_r, pthread_create, use_pthreads=yes, use_pthreads=no) ! if test X"$use_pthreads" = Xyes; then ! AC_CHECK_HEADERS(pthread.h semaphore.h sched.h,, ! AC_MSG_ERROR(pthread header files incomplete) ! ) ! AC_DEFINE(HAVE_PTHREADS) ! #SHLIBS="-lpthread" ! LDFLAGS="-pthread $LDFLAGS" ! platform_supports_threads=yes ! use_threads=yes ! else ! echo "" ! AC_MSG_ERROR("Your platform does not support POSIX-threads !") ! fi fi fi *************** *** 389,410 **** SHLIBS="-lpthread" else ! AC_CHECK_LIB(cma, open, use_dcethreads=yes, use_dcethreads=no) ! if test X"$use_dcethreads" = Xyes; then ! AC_CHECK_HEADERS(pthread.h semaphore.h sched.h,, ! AC_MSG_ERROR(DCE pthread header files incomplete) ) ! AC_DEFINE(HAVE_DCE_THREADS) ! SHLIBS="-lcma" else ! AC_CHECK_PROG(pth-config, use_pth_threads=yes, use_pth_threads=no) ! SHLIBS="`pth-config --libs`" fi fi fi ! else ! use_pthreads=no ! use_dcethreads=no ! use_solaris_threads=no ! use_pth_threads=no fi fi --- 401,456 ---- SHLIBS="-lpthread" else ! AC_CHECK_LIB(c_r, pthread_create, use_pthreads=yes, use_pthreads=no) ! if test X"$use_pthreads" = Xyes; then ! AC_CHECK_HEADERS(pthread.h semaphore.h sched.h,, ! AC_MSG_ERROR(pthread header files incomplete) ) ! AC_DEFINE(HAVE_PTHREADS) ! #SHLIBS="-lpthread" ! LDFLAGS="-pthread $LDFLAGS" ! platform_supports_threads=yes ! use_threads=yes else ! AC_CHECK_LIB(cma, open, use_dcethreads=yes, use_dcethreads=no) ! if test X"$use_dcethreads" = Xyes; then ! AC_CHECK_HEADERS(pthread.h semaphore.h sched.h,, ! AC_MSG_ERROR(DCE pthread header files incomplete) ! ) ! AC_DEFINE(HAVE_DCE_THREADS) ! SHLIBS="-lcma" ! else ! AC_CHECK_PROG(pth_config_prog, pth-config, yes, no) ! if test X"$pth_config_prog" = Xyes; then ! PTH_HEADERS=`pth-config --cflags` ! PTH_LDFLAGS=`pth-config --ldflags` ! PTH_LIBS=`pth-config --libs` ! CFLAGS="$PTH_HEADERS $CFLAGS" ! CXXFLAGS="$PTH_HEADERS $CXXFLAGS" ! LDFLAGS="$PTH_LDFLAGS $LDFLAGS" ! PTH_INCLUDE_DIR=`pth-config --includedir` ! PTH_LIB_DIR=`pth-config --libdir` ! AC_CHECK_HEADER($PTH_INCLUDE_DIR/pth.h) ! AC_CHECK_LIB(pth, pth_init, pth_lib=yes, pth_lib=no, "-L$PTH_LIB_DIR") ! AC_DEFINE(HAVE_PTH_THREADS) ! AC_DEFINE(HAVE_PTH_H) ! SHLIBS=$PTH_LIBS ! use_pth_threads=yes ! platform_supports_threads=yes ! use_threads=yes ! else ! use_pthreads=no ! use_dcethreads=no ! use_solaris_threads=no ! use_pth_threads=no ! fi ! fi fi fi fi ! # else ! # use_pthreads=no ! # use_dcethreads=no ! # use_solaris_threads=no ! # use_pth_threads=no fi fi *************** *** 412,416 **** --- 458,467 ---- service_disabled=no + if test X"$use_threads" = Xyes; then + if test X"$use_pthreads" = Xno -a X"$use_dcethreads" = Xno -a X"$use_solaris_threads" = Xno -a X"$use_pth_threads" = Xno; then + echo "" + AC_MSG_ERROR([MICO does not support the thread package for your platform, please remove --enable-threads from your configure command-line and run configure again]) + fi if test X"$use_mini_stl" = Xyes; then # don't use mini-stl with treads *************** *** 455,462 **** service_disabled=yes fi - fi - if test X"$use_pthreads" = Xno -a X"$use_dcethreads" = Xno -a X"$use_solaris_threads" = Xno -a X"$use_pth_threads" = Xno; then - AC_MSG_ERROR([MICO does not support the thread package for your platform, - please remove --enable-threads from your configure command-line to build]) fi AC_DEFINE(HAVE_THREADS) --- 506,509 ---- |
From: Karel G. <kg...@us...> - 2001-12-14 16:25:19
|
Update of /cvsroot/micomt/mico In directory usw-pr-cvs1:/tmp/cvs-serv15228 Modified Files: CHANGES.mt Log Message: - fixed ssl support Index: CHANGES.mt =================================================================== RCS file: /cvsroot/micomt/mico/CHANGES.mt,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -r1.23 -r1.24 *** CHANGES.mt 2001/12/12 20:29:13 1.23 --- CHANGES.mt 2001/12/14 16:25:17 1.24 *************** *** 1,3 **** --- 1,4 ---- + - fixed ssl support - removed _tpm static value from global MICO:: namespace into MTManager class - implemented disabling of connection checking with using `-ORBConnLimit 0', |
From: Karel G. <kg...@us...> - 2001-12-14 16:25:19
|
Update of /cvsroot/micomt/mico/orb In directory usw-pr-cvs1:/tmp/cvs-serv15228/orb Modified Files: ssl.cc Log Message: - fixed ssl support Index: ssl.cc =================================================================== RCS file: /cvsroot/micomt/mico/orb/ssl.cc,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -r1.8 -r1.9 *** ssl.cc 2001/10/26 20:00:02 1.8 --- ssl.cc 2001/12/14 16:25:17 1.9 *************** *** 509,513 **** void ! MICOSSL::SSLTransport::callback (CORBA::Transport *, Event ev) { switch (ev) { --- 509,513 ---- void ! MICOSSL::SSLTransport::callback (CORBA::Transport *, CORBA::TransportCallback::Event ev) { switch (ev) { *************** *** 700,704 **** void ! MICOSSL::SSLTransportServer::callback (CORBA::TransportServer *, Event ev) { switch (ev) { --- 700,704 ---- void ! MICOSSL::SSLTransportServer::callback (CORBA::TransportServer *, CORBA::TransportServerCallback::Event ev) { switch (ev) { |
From: Karel G. <kg...@us...> - 2001-12-14 16:25:19
|
Update of /cvsroot/micomt/mico/include/mico In directory usw-pr-cvs1:/tmp/cvs-serv15228/include/mico Modified Files: ssl.h Log Message: - fixed ssl support Index: ssl.h =================================================================== RCS file: /cvsroot/micomt/mico/include/mico/ssl.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** ssl.h 2001/10/26 19:59:59 1.3 --- ssl.h 2001/12/14 16:25:17 1.4 *************** *** 196,200 **** ! class SSLTransport : public CORBA::Transport, public CORBA::TransportCallback { CORBA::Transport *_transp; --- 196,200 ---- ! class SSLTransport : public MICO::SocketTransport, public CORBA::TransportCallback { CORBA::Transport *_transp; *************** *** 211,215 **** static int ssl_verify_callback (int ok, X509_STORE_CTX *); ! void callback (CORBA::Transport *, Event); public: SSLTransport (const SSLAddress *, CORBA::Transport * = 0); --- 211,215 ---- static int ssl_verify_callback (int ok, X509_STORE_CTX *); ! void callback (CORBA::Transport *, CORBA::TransportCallback::Event); public: SSLTransport (const SSLAddress *, CORBA::Transport * = 0); *************** *** 242,246 **** ! class SSLTransportServer : public CORBA::TransportServer, public CORBA::TransportServerCallback { CORBA::TransportServer *_server; --- 242,246 ---- ! class SSLTransportServer : public MICO::SocketTransportServer, public CORBA::TransportServerCallback { CORBA::TransportServer *_server; *************** *** 249,253 **** CORBA::TransportServerCallback *_acb; ! void callback (CORBA::TransportServer *, Event); public: SSLTransportServer (const SSLAddress *); --- 249,253 ---- CORBA::TransportServerCallback *_acb; ! void callback (CORBA::TransportServer *, CORBA::TransportServerCallback::Event); public: SSLTransportServer (const SSLAddress *); |
From: Karel G. <kg...@us...> - 2001-12-12 20:29:21
|
Update of /cvsroot/micomt/mico/orb In directory usw-pr-cvs1:/tmp/cvs-serv12215/orb Modified Files: iop.cc mt_manager.cc orb.cc transport.cc Log Message: - removed _tpm static value from global MICO:: namespace into MTManager class Index: iop.cc =================================================================== RCS file: /cvsroot/micomt/mico/orb/iop.cc,v retrieving revision 1.73 retrieving revision 1.74 diff -C2 -r1.73 -r1.74 *** iop.cc 2001/11/24 19:45:26 1.73 --- iop.cc 2001/12/12 20:29:13 1.74 *************** *** 2060,2067 **** __NAME( name( "InputReader" ) ); conn = _conn; ! kt = _tpm->get_idle_thread( Operation::Reader ); assert (kt); kt->register_operation( this ); ! this->info().set_next_op( _tpm->get_thread_pool( MICO::Operation::DeCode ) ); kt->mark_busy(); } --- 2060,2067 ---- __NAME( name( "InputReader" ) ); conn = _conn; ! kt = MICO::MTManager::thread_pool_manager()->get_idle_thread( Operation::Reader ); assert (kt); kt->register_operation( this ); ! this->info().set_next_op( MICO::MTManager::thread_pool_manager()->get_thread_pool( MICO::Operation::DeCode ) ); kt->mark_busy(); } *************** *** 2094,2098 **** __NAME( mq->name ("GIOPConnWriter") ); input_mc = mq; ! kt = _tpm->get_idle_thread( Operation::Writer ); assert (kt); kt->register_operation( this ); --- 2094,2098 ---- __NAME( mq->name ("GIOPConnWriter") ); input_mc = mq; ! kt = MICO::MTManager::thread_pool_manager()->get_idle_thread( Operation::Writer ); assert (kt); kt->register_operation( this ); *************** *** 2341,2345 **** msg = new msg_type(new GIOPConnMsg(this, this->input(), GIOPConnCallback::InputReady)); ! _tpm->get_thread_pool(MICO::Operation::DeCode).put_msg(0, msg); return TRUE; } --- 2341,2345 ---- msg = new msg_type(new GIOPConnMsg(this, this->input(), GIOPConnCallback::InputReady)); ! MICO::MTManager::thread_pool_manager()->get_thread_pool(MICO::Operation::DeCode).put_msg(0, msg); return TRUE; } *************** *** 2374,2378 **** } ! _tpm->put_msg( MICO::Operation::ORB, msg ); } #else --- 2374,2378 ---- } ! MICO::MTManager::thread_pool_manager()->put_msg( MICO::Operation::ORB, msg ); } #else *************** *** 2790,2797 **** if (MICO::MTManager::thread_pool()) { ! _tpm->put_msg( MICO::Operation::ORB, msg ); } else { ! _tpm->get_operation(MICO::Operation::ORB)->process(msg); } } --- 2790,2797 ---- if (MICO::MTManager::thread_pool()) { ! MICO::MTManager::thread_pool_manager()->put_msg( MICO::Operation::ORB, msg ); } else { ! MICO::MTManager::thread_pool_manager()->get_operation(MICO::Operation::ORB)->process(msg); } } *************** *** 3289,3292 **** --- 3289,3293 ---- } while (again); #ifdef HAVE_THREADS + //cerr << "kill_conn" << endl << flush; conn->terminate(); #endif *************** *** 3321,3325 **** if (redo) { ! //FIXME: if we issue a redo, the write methode\ // will hit a delete conn object !!! assert( 0 ); --- 3322,3326 ---- if (redo) { ! //FIXME: if we issue a redo, the write methode // will hit a delete conn object !!! assert( 0 ); Index: mt_manager.cc =================================================================== RCS file: /cvsroot/micomt/mico/orb/mt_manager.cc,v retrieving revision 1.43 retrieving revision 1.44 diff -C2 -r1.43 -r1.44 *** mt_manager.cc 2001/11/25 21:27:25 1.43 --- mt_manager.cc 2001/12/12 20:29:13 1.44 *************** *** 330,334 **** } - MICO::ThreadPoolManager *MICO::_tpm; struct MICO::tm_init_t tm_init[] = { --- 330,333 ---- *************** *** 380,384 **** tm_init[3].max = req_limit; ! _tpm = new MICO::ThreadPoolManager(); for (unsigned int i = 0; i < sizeof(tm_init)/sizeof(MICO::tm_init_t); i++) { --- 379,383 ---- tm_init[3].max = req_limit; ! _S_thread_pool_manager = new MICO::ThreadPoolManager(); for (unsigned int i = 0; i < sizeof(tm_init)/sizeof(MICO::tm_init_t); i++) { *************** *** 387,391 **** tm_init[i].max_idle, tm_init[i].min_idle ); ! _tpm->register_tp( tm_init[i].OP_type, *tp ); switch (tm_init[i].OP_type) { --- 386,390 ---- tm_init[i].max_idle, tm_init[i].min_idle ); ! _S_thread_pool_manager->register_tp( tm_init[i].OP_type, *tp ); switch (tm_init[i].OP_type) { *************** *** 420,429 **** } #ifdef DEBUG_NAMES ! _tpm->get_operation( MICO::Operation::DeCode )->name("InputHandler"); ! _tpm->get_operation( MICO::Operation::ORB )->name("MTDispatcher"); #endif } CORBA::Long MICO::MTManager::_S_concurrency_model = MICO::MTManager::_S_thread_pool; void --- 419,429 ---- } #ifdef DEBUG_NAMES ! _S_thread_pool_manager->get_operation( MICO::Operation::DeCode )->name("InputHandler"); ! _S_thread_pool_manager->get_operation( MICO::Operation::ORB )->name("MTDispatcher"); #endif } CORBA::Long MICO::MTManager::_S_concurrency_model = MICO::MTManager::_S_thread_pool; + MICO::ThreadPoolManager* MICO::MTManager::_S_thread_pool_manager = NULL; void Index: orb.cc =================================================================== RCS file: /cvsroot/micomt/mico/orb/orb.cc,v retrieving revision 1.47 retrieving revision 1.48 diff -C2 -r1.47 -r1.48 *** orb.cc 2001/11/25 21:27:25 1.47 --- orb.cc 2001/12/12 20:29:13 1.48 *************** *** 79,82 **** --- 79,83 ---- cond.timedwait( cond_mutex, tmout ); } else { + //cerr << "async" << endl << flush; cond.wait( cond_mutex ); } Index: transport.cc =================================================================== RCS file: /cvsroot/micomt/mico/orb/transport.cc,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -r1.22 -r1.23 *** transport.cc 2001/10/26 20:00:02 1.22 --- transport.cc 2001/12/12 20:29:13 1.23 *************** *** 415,419 **** // each on runs in its own thread !! ! WorkerThread *kt = _tpm->get_thread_pool( MICO::Operation::Accept ).get_idle_thread(); kt->register_operation( this ); kt->mark_busy(); --- 415,419 ---- // each on runs in its own thread !! ! WorkerThread *kt = MICO::MTManager::thread_pool_manager()->get_thread_pool( MICO::Operation::Accept ).get_idle_thread(); kt->register_operation( this ); kt->mark_busy(); |
From: Karel G. <kg...@us...> - 2001-12-12 20:29:21
|
Update of /cvsroot/micomt/mico/include/mico In directory usw-pr-cvs1:/tmp/cvs-serv12215/include/mico Modified Files: mt_manager.h rt_mico_impl.h Log Message: - removed _tpm static value from global MICO:: namespace into MTManager class Index: mt_manager.h =================================================================== RCS file: /cvsroot/micomt/mico/include/mico/mt_manager.h,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -r1.28 -r1.29 *** mt_manager.h 2001/11/24 19:45:26 1.28 --- mt_manager.h 2001/12/12 20:29:13 1.29 *************** *** 438,454 **** }; - /*! - * \ingroup micomt - * The global thread pool manager. - * - * \todo - * There shouldn't be any globals in OO. instead, write a function - * MICO::get_thread_pool_mgr() that returns the global object. - */ - extern ThreadPoolManager *_tpm; class MTManager { static CORBA::Long _S_concurrency_model; public: enum ConcurrencyModel --- 438,446 ---- }; class MTManager { static CORBA::Long _S_concurrency_model; + static MICO::ThreadPoolManager* _S_thread_pool_manager; public: enum ConcurrencyModel *************** *** 476,479 **** --- 468,475 ---- static void thread_setup(unsigned int __conn_limit, unsigned int __req_limit); + + static MICO::ThreadPoolManager* + thread_pool_manager() + { return _S_thread_pool_manager; } }; } Index: rt_mico_impl.h =================================================================== RCS file: /cvsroot/micomt/mico/include/mico/rt_mico_impl.h,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** rt_mico_impl.h 2001/10/26 19:59:59 1.4 --- rt_mico_impl.h 2001/12/12 20:29:13 1.5 *************** *** 92,96 **** ThreadPool *tp = new ThreadPool( static_threads + dynamic_threads, 0, static_threads ); tp->start_threads(); ! return _tpm->register_new_tp( *tp ); }; RT_CORBA::ThreadpoolId create_threadpool_with_lanes( CORBA::ULong stacksize, --- 92,96 ---- ThreadPool *tp = new ThreadPool( static_threads + dynamic_threads, 0, static_threads ); tp->start_threads(); ! return MICO::MTManager::thread_pool_manager()->register_new_tp( *tp ); }; RT_CORBA::ThreadpoolId create_threadpool_with_lanes( CORBA::ULong stacksize, |
From: Karel G. <kg...@us...> - 2001-12-12 20:29:21
|
Update of /cvsroot/micomt/mico In directory usw-pr-cvs1:/tmp/cvs-serv12215 Modified Files: CHANGES.mt Log Message: - removed _tpm static value from global MICO:: namespace into MTManager class Index: CHANGES.mt =================================================================== RCS file: /cvsroot/micomt/mico/CHANGES.mt,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -r1.22 -r1.23 *** CHANGES.mt 2001/11/25 21:27:25 1.22 --- CHANGES.mt 2001/12/12 20:29:13 1.23 *************** *** 1,3 **** --- 1,4 ---- + - removed _tpm static value from global MICO:: namespace into MTManager class - implemented disabling of connection checking with using `-ORBConnLimit 0', connection checking is disabled by default for thread-pool concurrency model |
From: Karel G. <kg...@us...> - 2001-12-10 20:15:30
|
Update of /cvsroot/micomt/mico/auxdir In directory usw-pr-cvs1:/tmp/cvs-serv22610/auxdir Modified Files: Makefile Log Message: - fixed linking of libmicox Index: Makefile =================================================================== RCS file: /cvsroot/micomt/mico/auxdir/Makefile,v retrieving revision 1.1.1.3 retrieving revision 1.2 diff -C2 -r1.1.1.3 -r1.2 *** Makefile 2001/02/08 15:06:28 1.1.1.3 --- Makefile 2001/12/10 20:15:25 1.2 *************** *** 110,114 **** rm -f $@ $(LDSO) -o libmicox$(VERSION) $(SHARED_X11_OBJS) \ ! $(PURE_LDFLAGS) -lXt -lX11 -L../libs -lmico$(VERSION) $(IDIRCMD) ../libs cd ../libs; rm -f $@; ln -f -s ../auxdir/$@ . --- 110,114 ---- rm -f $@ $(LDSO) -o libmicox$(VERSION) $(SHARED_X11_OBJS) \ ! $(PURE_LDFLAGS) $(X_LIBS) -lXt -lX11 -L../libs -lmico$(VERSION) $(IDIRCMD) ../libs cd ../libs; rm -f $@; ln -f -s ../auxdir/$@ . |
From: Karel G. <kg...@us...> - 2001-11-25 21:27:29
|
Update of /cvsroot/micomt/mico/include/mico In directory usw-pr-cvs1:/tmp/cvs-serv5725/include/mico Modified Files: orb_mico.h Log Message: - implemented disabling of connection checking with using `-ORBConnLimit 0', connection checking is disabled by default for thread-pool concurrency model Index: orb_mico.h =================================================================== RCS file: /cvsroot/micomt/mico/include/mico/orb_mico.h,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -r1.13 -r1.14 *** orb_mico.h 2001/10/26 19:59:59 1.13 --- orb_mico.h 2001/11/25 21:27:25 1.14 *************** *** 183,198 **** // nections are open at any point in time... // ! inline ULong connectionCount (void) { return _connection_count; } inline CORBA::Boolean acquire_connection (void) { ! MICOMT::AutoLock l(conn_cnt_mutex); ! if (_connection_count < _connection_limit) ! { ! _connection_count++; ! return TRUE; ! } ! return FALSE; } inline void release_connection (void) { --- 183,204 ---- // nections are open at any point in time... // ! inline ULong connection_count (void) const { return _connection_count; } inline CORBA::Boolean acquire_connection (void) { ! MICOMT::AutoLock l(conn_cnt_mutex); ! if (_connection_limit > 0) { ! if (_connection_count < _connection_limit) { ! _connection_count++; ! return TRUE; ! } ! return FALSE; ! } ! else { ! // connection checking disabled by -ORBConnLimit 0 ! _connection_count++; ! return TRUE; ! } } inline void release_connection (void) { |
From: Karel G. <kg...@us...> - 2001-11-25 21:27:29
|
Update of /cvsroot/micomt/mico/orb In directory usw-pr-cvs1:/tmp/cvs-serv5725/orb Modified Files: mt_manager.cc orb.cc Log Message: - implemented disabling of connection checking with using `-ORBConnLimit 0', connection checking is disabled by default for thread-pool concurrency model Index: mt_manager.cc =================================================================== RCS file: /cvsroot/micomt/mico/orb/mt_manager.cc,v retrieving revision 1.42 retrieving revision 1.43 diff -C2 -r1.42 -r1.43 *** mt_manager.cc 2001/11/24 19:45:26 1.42 --- mt_manager.cc 2001/11/25 21:27:25 1.43 *************** *** 350,361 **** MICO::MTManager::thread_setup(unsigned int conn_limit, unsigned int req_limit) { ! if (!conn_limit) ! { ! cerr << "-ORBConnLimit: Connection Limit must be non-zero" << endl; ! exit (-1); } ! tm_init[1].max = conn_limit; ! tm_init[2].max = conn_limit; ! if (!req_limit) { --- 350,376 ---- MICO::MTManager::thread_setup(unsigned int conn_limit, unsigned int req_limit) { ! if (!MICO::MTManager::thread_pool()) { ! // thread-per-connection and thread-per-request concurrency models ! if (!conn_limit) ! { ! cerr << "-ORBConnLimit: Connection Limit must be non-zero" << endl; ! exit (-1); ! } ! tm_init[1].max = conn_limit; ! tm_init[2].max = conn_limit; } ! else { ! // thread-pool concurrency model ! if (conn_limit > 0) { ! tm_init[1].max = conn_limit; ! tm_init[2].max = conn_limit; ! } ! else { ! // connection checking disabled by -ORBConnLimit 0 ! // but we have to set max limit on reader thread pool ! // because this thread-pool is used by client side ! tm_init[2].max = 10; ! } ! } if (!req_limit) { Index: orb.cc =================================================================== RCS file: /cvsroot/micomt/mico/orb/orb.cc,v retrieving revision 1.46 retrieving revision 1.47 diff -C2 -r1.46 -r1.47 *** orb.cc 2001/11/24 19:45:26 1.46 --- orb.cc 2001/11/25 21:27:25 1.47 *************** *** 2641,2646 **** string rcfile = "~/.micorc"; string id = _id; ! ULong ConnLimit = 10; ! ULong RequestLimit = 10; bool memtrace = false; vector<string> InitRefs; --- 2641,2650 ---- string rcfile = "~/.micorc"; string id = _id; ! // Connection checking is disabled by default ! // for default thread-pool concurrency model ! // Other concurrency model have default connection limit ! // set to 10. ! ULong ConnLimit = 0; ! ULong RequestLimit = 4; // The most common servers have up to four CPUs bool memtrace = false; vector<string> InitRefs; *************** *** 2777,2788 **** --- 2781,2798 ---- __thread_per_connection = FALSE; __thread_per_request = FALSE; + if (ConnLimit != 0) + ConnLimit = 0; } else if (arg == "-ORBThreadPerConnection") { __thread_pool = FALSE; __thread_per_connection = TRUE; __thread_per_request = FALSE; + if (ConnLimit < 1) + ConnLimit = 10; } else if (arg == "-ORBThreadPerRequest") { __thread_pool = FALSE; __thread_per_connection = FALSE; __thread_per_request = TRUE; + if (ConnLimit < 1) + ConnLimit = 10; } } *************** *** 2838,2842 **** if (__thread_pool) { MICO::MTManager::concurrency_model(MICO::MTManager::_S_thread_pool); ! cerr << "Using thread-pool concurrency model." << endl; // this is a hack because MICO::SelectDispatcher::_isblocking // is private static and method block is not static --- 2848,2856 ---- if (__thread_pool) { MICO::MTManager::concurrency_model(MICO::MTManager::_S_thread_pool); ! if (MICO::Logger::IsLogged(MICO::Logger::Info)) { ! MICOMT::AutoDebugLock __lock; ! MICO::Logger::Stream(MICO::Logger::Info) ! << "Using thread-pool concurrency model." << endl; ! } // this is a hack because MICO::SelectDispatcher::_isblocking // is private static and method block is not static *************** *** 2847,2855 **** if (__thread_per_connection) { MICO::MTManager::concurrency_model(MICO::MTManager::_S_thread_per_connection); ! cerr << "Using thread-per-connection concurrency model." << endl; } if (__thread_per_request) { MICO::MTManager::concurrency_model(MICO::MTManager::_S_thread_per_request); ! cerr << "Using thread-per-request concurrency model." << endl; } MICO::MTManager::thread_setup (ConnLimit, RequestLimit); --- 2861,2877 ---- if (__thread_per_connection) { MICO::MTManager::concurrency_model(MICO::MTManager::_S_thread_per_connection); ! if (MICO::Logger::IsLogged(MICO::Logger::Info)) { ! MICOMT::AutoDebugLock __lock; ! MICO::Logger::Stream(MICO::Logger::Info) ! << "Using thread-per-connection concurrency model." << endl; ! } } if (__thread_per_request) { MICO::MTManager::concurrency_model(MICO::MTManager::_S_thread_per_request); ! if (MICO::Logger::IsLogged(MICO::Logger::Info)) { ! MICOMT::AutoDebugLock __lock; ! MICO::Logger::Stream(MICO::Logger::Info) ! << "Using thread-per-request concurrency model." << endl; ! } } MICO::MTManager::thread_setup (ConnLimit, RequestLimit); |
From: Karel G. <kg...@us...> - 2001-11-25 21:27:29
|
Update of /cvsroot/micomt/mico In directory usw-pr-cvs1:/tmp/cvs-serv5725 Modified Files: CHANGES.mt Log Message: - implemented disabling of connection checking with using `-ORBConnLimit 0', connection checking is disabled by default for thread-pool concurrency model Index: CHANGES.mt =================================================================== RCS file: /cvsroot/micomt/mico/CHANGES.mt,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -r1.21 -r1.22 *** CHANGES.mt 2001/11/24 19:45:26 1.21 --- CHANGES.mt 2001/11/25 21:27:25 1.22 *************** *** 1,3 **** --- 1,5 ---- + - implemented disabling of connection checking with using `-ORBConnLimit 0', + connection checking is disabled by default for thread-pool concurrency model - fixed compilation of final build - fixed --enable-threads configure option |
From: Karel G. <kg...@us...> - 2001-11-24 19:45:29
|
Update of /cvsroot/micomt/mico/orb In directory usw-pr-cvs1:/tmp/cvs-serv31239/orb Modified Files: fast_array.cc iop.cc mt_dispatcher.cc mt_manager.cc orb.cc orb_all.cc os-thread.cc Log Message: - fixed compilation of final build - fixed --enable-threads configure option - fixed server scalability problem with thread-pool concurrency model which uses separate reader/writer threads for each GIOP connection Index: fast_array.cc =================================================================== RCS file: /cvsroot/micomt/mico/orb/fast_array.cc,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -r1.13 -r1.14 *** fast_array.cc 2001/10/26 20:00:00 1.13 --- fast_array.cc 2001/11/24 19:45:26 1.14 *************** *** 118,122 **** _first_free = n; } ! #ifdef __M_DEBUG objs[n].obj = NULL; objs[n].prev = 0; --- 118,122 ---- _first_free = n; } ! #ifdef MTDEBUG objs[n].obj = NULL; objs[n].prev = 0; *************** *** 124,128 **** } ! #ifdef __M_DEBUG void MICO::__void_array::print_stats() { if (MICO::Logger::IsLogged (MICO::Logger::Support)) { --- 124,128 ---- } ! #ifdef MTDEBUG void MICO::__void_array::print_stats() { if (MICO::Logger::IsLogged (MICO::Logger::Support)) { *************** *** 171,173 **** } ! #endif // __M_DEBUG --- 171,173 ---- } ! #endif // MTDEBUG Index: iop.cc =================================================================== RCS file: /cvsroot/micomt/mico/orb/iop.cc,v retrieving revision 1.72 retrieving revision 1.73 diff -C2 -r1.72 -r1.73 *** iop.cc 2001/10/26 20:00:00 1.72 --- iop.cc 2001/11/24 19:45:26 1.73 *************** *** 2133,2138 **** /******************************* InputHandler ***************************/ ! MICO::InputHandler::InputHandler(): PassiveOperation() { ! __NAME( name( "InputHandler" ) ); if (MICO::Logger::IsLogged (MICO::Logger::GIOP)) { --- 2133,2138 ---- /******************************* InputHandler ***************************/ ! MICO::InputHandler::InputHandler(): PassiveOperation() ! { __NAME( name( "InputHandler" ) ); if (MICO::Logger::IsLogged (MICO::Logger::GIOP)) { *************** *** 2184,2193 **** /******************************* GIOPConn *******************************/ - MICO::GIOPConn::GIOPConn (CORBA::Dispatcher *disp, CORBA::Transport *transp, GIOPConnCallback *cb, GIOPCodec *codec, CORBA::Long tmout, CORBA::ULong max_size) ! : _inctx (codec, new CORBA::Buffer()) { _disp = disp; --- 2184,2202 ---- /******************************* GIOPConn *******************************/ + #ifdef HAVE_THREADS + MICO::GIOPConn::GIOPConn (CORBA::Dispatcher *disp, CORBA::Transport *transp, + GIOPConnCallback *cb, GIOPCodec *codec, + CORBA::Long tmout, CORBA::ULong max_size, + CORBA::Boolean __reader_thread, + CORBA::Boolean __writer_thread) + : _inctx (codec, new CORBA::Buffer()), _M_use_reader_thread(__reader_thread), + _M_use_writer_thread(__writer_thread) + #else MICO::GIOPConn::GIOPConn (CORBA::Dispatcher *disp, CORBA::Transport *transp, GIOPConnCallback *cb, GIOPCodec *codec, CORBA::Long tmout, CORBA::ULong max_size) ! : _inctx (codec, new CORBA::Buffer()) ! #endif { _disp = disp; *************** *** 2213,2218 **** #ifdef HAVE_THREADS ! _writer = new GIOPConnWriter( this ); ! _reader = new GIOPConnReader( this ); #endif --- 2222,2229 ---- #ifdef HAVE_THREADS ! if (_M_use_reader_thread) ! _reader = new GIOPConnReader(this); ! if (_M_use_writer_thread) ! _writer = new GIOPConnWriter(this); #endif *************** *** 2249,2254 **** //REMEMBER: terminate tells the thread to exit // it does NOT cancel the thread ! _writer->init_shutdown(); ! _reader->init_shutdown(); _transp->close(); --- 2260,2268 ---- //REMEMBER: terminate tells the thread to exit // it does NOT cancel the thread ! if (_M_use_writer_thread) ! _writer->init_shutdown(); ! if (_M_use_reader_thread) ! _reader->init_shutdown(); ! _transp->close(); *************** *** 2256,2264 **** _transp->wselect (_disp, 0); ! _writer->finalize_shutdown(); ! _reader->finalize_shutdown(); ! delete _writer; ! delete _reader; ! if (MICO::Logger::IsLogged (MICO::Logger::GIOP)) { MICOMT::AutoDebugLock __lock; --- 2270,2281 ---- _transp->wselect (_disp, 0); ! if (_M_use_writer_thread) { ! _writer->finalize_shutdown(); ! delete _writer; ! } ! if (_M_use_reader_thread) { ! _reader->finalize_shutdown(); ! delete _reader; ! } if (MICO::Logger::IsLogged (MICO::Logger::GIOP)) { MICOMT::AutoDebugLock __lock; *************** *** 2295,2300 **** this->ref(); this->state_change( MICOMT::StateRefCnt::Active ); ! _writer->start(); ! _reader->start(); } --- 2312,2319 ---- this->ref(); this->state_change( MICOMT::StateRefCnt::Active ); ! if (_M_use_writer_thread) ! _writer->start(); ! if (_M_use_reader_thread) ! _reader->start(); } *************** *** 2312,2316 **** << " conn: " << this << endl << " ev: GIOPConnCallback::InputReady" << endl ! << " t_mod: " << MICO::MTManager::get_thread_model() << endl << " pool: " << MICO::MTManager::thread_pool() << endl << " conn: " << MICO::MTManager::thread_per_connection() << endl --- 2331,2335 ---- << " conn: " << this << endl << " ev: GIOPConnCallback::InputReady" << endl ! << " t_mod: " << MICO::MTManager::concurrency_model() << endl << " pool: " << MICO::MTManager::thread_pool() << endl << " conn: " << MICO::MTManager::thread_per_connection() << endl *************** *** 2318,2327 **** } ! if (MICO::MTManager::thread_pool() ! || MICO::MTManager::thread_per_request()) { ! MICO::msg_type *msg; msg = new msg_type(new GIOPConnMsg(this, this->input(), GIOPConnCallback::InputReady)); - _reader->send_msg( MICO::Operation::DeCode, msg ); return TRUE; --- 2337,2351 ---- } ! if (MICO::MTManager::thread_pool()) { ! MICO::msg_type *msg; ! msg = new msg_type(new GIOPConnMsg(this, this->input(), ! GIOPConnCallback::InputReady)); ! _tpm->get_thread_pool(MICO::Operation::DeCode).put_msg(0, msg); ! return TRUE; ! } ! if (MICO::MTManager::thread_per_request()) { ! MICO::msg_type *msg; msg = new msg_type(new GIOPConnMsg(this, this->input(), GIOPConnCallback::InputReady)); _reader->send_msg( MICO::Operation::DeCode, msg ); return TRUE; *************** *** 2680,2685 **** if ( this->state() == MICOMT::StateRefCnt::Active ) { - - msg = new msg_type( b ); if (MICO::Logger::IsLogged (MICO::Logger::GIOP)) { --- 2704,2707 ---- *************** *** 2691,2698 **** if (MICO::MTManager::thread_pool()) { ! _writer->send_msg( msg ); } else { ! _writer->process(msg); } } else { --- 2713,2723 ---- if (MICO::MTManager::thread_pool()) { ! //_writer->send_msg( msg ); ! this->output_handler(b); } else { ! // msg = new msg_type( b ); ! // _writer->process(msg); ! this->output_handler(b); } } else { *************** *** 3034,3038 **** } else #endif // 1 ! { conn = (*i).second; #ifdef HAVE_THREADS --- 3059,3063 ---- } else #endif // 1 ! { conn = (*i).second; #ifdef HAVE_THREADS *************** *** 3087,3090 **** --- 3112,3125 ---- return 0; } + #ifdef HAVE_THREADS + CORBA::Boolean __use_reader_thread = TRUE; + CORBA::Boolean __use_writer_thread = FALSE; + conn = + new GIOPConn (Dispatcher(), t, this, + new GIOPCodec (new CDRDecoder, new CDREncoder, + version), + 0L /* no tmout */, _max_message_size, + __use_reader_thread, __use_writer_thread); + #else conn = new GIOPConn (Dispatcher(), t, this, *************** *** 3092,3095 **** --- 3127,3131 ---- version), 0L /* no tmout */, _max_message_size); + #endif _conns[t->peer()] = conn; #ifdef HAVE_THREADS *************** *** 3965,3976 **** } - #ifndef HAVE_THREADS CORBA::Dispatcher* MICO::IIOPProxy::Dispatcher() { return _orb->dispatcher(); } - #endif // HAVE_THREADS /************************* IIOPServerInvokeRec ************************/ --- 4001,4014 ---- } CORBA::Dispatcher* MICO::IIOPProxy::Dispatcher() { + #ifndef HAVE_THREADS return _orb->dispatcher(); + #else + return MICO::GIOPConnMgr::Dispatcher(); + #endif } /************************* IIOPServerInvokeRec ************************/ *************** *** 5135,5138 **** --- 5173,5182 ---- break; } + #ifdef HAVE_THREADS + CORBA::Boolean __use_reader_thread = TRUE; + CORBA::Boolean __use_writer_thread = FALSE; + if (MICO::MTManager::thread_pool()) + __use_reader_thread = FALSE; + GIOPConn *conn = new GIOPConn (Dispatcher(), t, this, *************** *** 5140,5145 **** new CDREncoder, _iiop_ver), 0L /* no tmout */, _max_message_size); ! // this and kill_conn are the only reasons to lock _conns --- 5184,5197 ---- new CDREncoder, _iiop_ver), + 0L /* no tmout */, _max_message_size, + __use_reader_thread, __use_writer_thread); + #else + GIOPConn *conn = + new GIOPConn (Dispatcher(), t, this, + new GIOPCodec (new CDRDecoder, + new CDREncoder, + _iiop_ver), 0L /* no tmout */, _max_message_size); ! #endif // this and kill_conn are the only reasons to lock _conns *************** *** 5164,5173 **** } - #ifndef HAVE_THREADS CORBA::Dispatcher* MICO::IIOPServer::Dispatcher() { return _orb->dispatcher(); } - #endif --- 5216,5232 ---- } CORBA::Dispatcher* MICO::IIOPServer::Dispatcher() { + #ifndef HAVE_THREADS return _orb->dispatcher(); + #else + if (MICO::MTManager::thread_pool()) { + return _orb->dispatcher(); + } + else { + return MICO::GIOPConnMgr::Dispatcher(); + } + #endif } Index: mt_dispatcher.cc =================================================================== RCS file: /cvsroot/micomt/mico/orb/mt_dispatcher.cc,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -r1.20 -r1.21 *** mt_dispatcher.cc 2001/10/26 20:00:01 1.20 --- mt_dispatcher.cc 2001/11/24 19:45:26 1.21 *************** *** 27,32 **** */ - #define MTDEBUG - #define MICO_CONF_IMR #include <CORBA-SMALL.h> --- 27,30 ---- Index: mt_manager.cc =================================================================== RCS file: /cvsroot/micomt/mico/orb/mt_manager.cc,v retrieving revision 1.41 retrieving revision 1.42 diff -C2 -r1.41 -r1.42 *** mt_manager.cc 2001/10/26 20:00:02 1.41 --- mt_manager.cc 2001/11/24 19:45:26 1.42 *************** *** 410,430 **** } ! CORBA::Long MICO::MTManager::_S_thread_model = MICO::MTManager::ThreadPool; void ! MICO::MTManager::set_thread_model(MICO::MTManager::ThreadModel __model) { if (MICO::Logger::IsLogged (MICO::Logger::Thread)) { MICOMT::AutoDebugLock __lock; MICO::Logger::Stream (MICO::Logger::Thread) ! << "Using " << __model << " as a thread model of whole orb." << endl; } ! _S_thread_model = __model; } CORBA::Long ! MICO::MTManager::get_thread_model() { ! return MICO::MTManager::_S_thread_model; } --- 410,430 ---- } ! CORBA::Long MICO::MTManager::_S_concurrency_model = MICO::MTManager::_S_thread_pool; void ! MICO::MTManager::concurrency_model(MICO::MTManager::ConcurrencyModel __model) { if (MICO::Logger::IsLogged (MICO::Logger::Thread)) { MICOMT::AutoDebugLock __lock; MICO::Logger::Stream (MICO::Logger::Thread) ! << "Using " << __model << " as a concurrency model of whole orb." << endl; } ! _S_concurrency_model = __model; } CORBA::Long ! MICO::MTManager::concurrency_model() { ! return MICO::MTManager::_S_concurrency_model; } *************** *** 432,436 **** MICO::MTManager::thread_pool() { ! return _S_thread_model == ThreadPool; } --- 432,436 ---- MICO::MTManager::thread_pool() { ! return _S_concurrency_model == _S_thread_pool; } *************** *** 438,442 **** MICO::MTManager::thread_per_connection() { ! return _S_thread_model == ThreadPerConnection; } --- 438,442 ---- MICO::MTManager::thread_per_connection() { ! return _S_concurrency_model == _S_thread_per_connection; } *************** *** 444,448 **** MICO::MTManager::thread_per_request() { ! return _S_thread_model == ThreadPerRequest; } --- 444,448 ---- MICO::MTManager::thread_per_request() { ! return _S_concurrency_model == _S_thread_per_request; } Index: orb.cc =================================================================== RCS file: /cvsroot/micomt/mico/orb/orb.cc,v retrieving revision 1.45 retrieving revision 1.46 diff -C2 -r1.45 -r1.46 *** orb.cc 2001/11/04 18:34:53 1.45 --- orb.cc 2001/11/24 19:45:26 1.46 *************** *** 2300,2312 **** #ifdef HAVE_THREADS if (rec && rec->active() ) { ! assert( rec->callback() ); ! return (rec->callback()->waitfor(this, id, CORBA::ORBCallback::Result, tmout)); } return TRUE; #else if (tmout == 0) { ! if (!rec || rec->completed()) { ! return TRUE; ! } } --- 2300,2312 ---- #ifdef HAVE_THREADS if (rec && rec->active() ) { ! assert( rec->callback() ); ! return (rec->callback()->waitfor(this, id, CORBA::ORBCallback::Result, tmout)); } return TRUE; #else if (tmout == 0) { ! if (!rec || rec->completed()) { ! return TRUE; ! } } *************** *** 2314,2325 **** while (42) { ! if (!rec || rec->completed()) ! return TRUE; ! if (t.done()) ! return FALSE; ! _disp->run (FALSE); ! rec = get_invoke (id); } ! #endif } --- 2314,2325 ---- while (42) { ! if (!rec || rec->completed()) ! return TRUE; ! if (t.done()) ! return FALSE; ! _disp->run (FALSE); ! rec = get_invoke (id); } ! #endif // HAVE_THREADS } *************** *** 2837,2849 **** orb_instance->resource_manager ().request_limit (RequestLimit); if (__thread_pool) { ! MICO::MTManager::set_thread_model(MICO::MTManager::ThreadPool); cerr << "Using thread-pool concurrency model." << endl; } if (__thread_per_connection) { ! MICO::MTManager::set_thread_model(MICO::MTManager::ThreadPerConnection); cerr << "Using thread-per-connection concurrency model." << endl; } if (__thread_per_request) { ! MICO::MTManager::set_thread_model(MICO::MTManager::ThreadPerRequest); cerr << "Using thread-per-request concurrency model." << endl; } --- 2837,2854 ---- orb_instance->resource_manager ().request_limit (RequestLimit); if (__thread_pool) { ! MICO::MTManager::concurrency_model(MICO::MTManager::_S_thread_pool); cerr << "Using thread-pool concurrency model." << endl; + // this is a hack because MICO::SelectDispatcher::_isblocking + // is private static and method block is not static + MICO::SelectDispatcher* __disp = new MICO::SelectDispatcher; + __disp->block(FALSE); + delete __disp; } if (__thread_per_connection) { ! MICO::MTManager::concurrency_model(MICO::MTManager::_S_thread_per_connection); cerr << "Using thread-per-connection concurrency model." << endl; } if (__thread_per_request) { ! MICO::MTManager::concurrency_model(MICO::MTManager::_S_thread_per_request); cerr << "Using thread-per-request concurrency model." << endl; } Index: orb_all.cc =================================================================== RCS file: /cvsroot/micomt/mico/orb/orb_all.cc,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -r1.1.1.1 -r1.2 *** orb_all.cc 1999/11/03 23:20:53 1.1.1.1 --- orb_all.cc 2001/11/24 19:45:26 1.2 *************** *** 18,21 **** --- 18,24 ---- #include "except.cc" #include "transport.cc" + #include "transport/tcp.cc" + #include "transport/udp.cc" + #include "transport/unix.cc" #include "dispatch.cc" #include "typecode.cc" *************** *** 43,44 **** --- 46,68 ---- #include "dynany.cc" #include "ssliop.cc" + + // address.cc and others define MICO_CONF_NO_POA + #undef MICO_CONF_NO_POA + #include "ir.cc" + #include "ir_base.cc" + #include "imr.cc" + + #include "time_base.cc" + #include "mtdebug.cc" + #include "fast_array.cc" + + #ifdef HAVE_THREADS + #include "os-thread.cc" + #include "Operation.cc" + #include "message.cc" + #include "mt_dispatcher.cc" + #include "mt_manager.cc" + #include "rt_corba.cc" + #include "rt_corba_impl.cc" + #include "rt_mico_impl.cc" + #endif Index: os-thread.cc =================================================================== RCS file: /cvsroot/micomt/mico/orb/os-thread.cc,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -r1.9 -r1.10 *** os-thread.cc 2001/10/26 20:00:02 1.9 --- os-thread.cc 2001/11/24 19:45:26 1.10 *************** *** 39,47 **** // - #define MICO_DEBUG_MODULE MICO::Logger::Thread - #define MICO_CONF_IMR - //#include <pthread.h> #include <CORBA-SMALL.h> #ifndef _WINDOWS --- 39,44 ---- |
From: Karel G. <kg...@us...> - 2001-11-24 19:45:29
|
Update of /cvsroot/micomt/mico/orb/os-thread In directory usw-pr-cvs1:/tmp/cvs-serv31239/orb/os-thread Modified Files: pthreads.cc Log Message: - fixed compilation of final build - fixed --enable-threads configure option - fixed server scalability problem with thread-pool concurrency model which uses separate reader/writer threads for each GIOP connection Index: pthreads.cc =================================================================== RCS file: /cvsroot/micomt/mico/orb/os-thread/pthreads.cc,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -r1.27 -r1.28 *** pthreads.cc 2001/10/26 20:00:03 1.27 --- pthreads.cc 2001/11/24 19:45:26 1.28 *************** *** 82,92 **** * subsystem. For pthread, there is none. */ ! static void MICOMT::_init (MICO_ULong _tpsize, MICO_ULong _tpincr) { ! if (MICO::Logger::IsLogged(MICO::Logger::Thread)) { __mtdebug_lock(); MICO::Logger::Stream (MICO::Logger::Thread) ! << "_init (_tpsize = " << _tpsize << ", _tpincr = " ! << _tpincr << ")" << endl; __mtdebug_unlock(); } --- 82,91 ---- * subsystem. For pthread, there is none. */ ! static void MICOMT::_init () ! { if (MICO::Logger::IsLogged(MICO::Logger::Thread)) { __mtdebug_lock(); MICO::Logger::Stream (MICO::Logger::Thread) ! << "MICOMT::_init()" << endl; __mtdebug_unlock(); } *************** *** 154,158 **** __mtdebug_lock(); MICO::Logger::Stream (MICO::Logger::Thread) ! __NAME (<< name ()) << ": RWLock::~RWLock ()" << endl; __mtdebug_unlock(); } --- 153,158 ---- __mtdebug_lock(); MICO::Logger::Stream (MICO::Logger::Thread) ! __NAME (<< name ()) ! << ": RWLock::~RWLock ()" << endl; __mtdebug_unlock(); } *************** *** 188,192 **** __mtdebug_lock(); MICO::Logger::Stream (MICO::Logger::Thread) ! __NAME (<< name ()) << ": Semaphore::~Semaphore ()" << endl; __mtdebug_unlock(); } --- 188,193 ---- __mtdebug_lock(); MICO::Logger::Stream (MICO::Logger::Thread) ! __NAME (<< name ()) ! << ": Semaphore::~Semaphore ()" << endl; __mtdebug_unlock(); } *************** *** 207,211 **** { pthread_mutexattr_t m_attr; ! if (MICO::Logger::IsLogged(MICO::Logger::Thread)) { __mtdebug_lock(); --- 208,212 ---- { pthread_mutexattr_t m_attr; ! #ifdef MTDEBUG if (MICO::Logger::IsLogged(MICO::Logger::Thread)) { __mtdebug_lock(); *************** *** 218,222 **** __mtdebug_unlock(); } ! __NAME (name ("<UnNamed Mutex>")); --- 219,223 ---- __mtdebug_unlock(); } ! #endif __NAME (name ("<UnNamed Mutex>")); *************** *** 253,262 **** MICOMT::Mutex::~Mutex() { if (MICO::Logger::IsLogged(MICO::Logger::Thread)) { __mtdebug_lock(); MICO::Logger::Stream (MICO::Logger::Thread) ! __NAME (<< name ()) << ": Mutex::~Mutex ()" << endl; __mtdebug_unlock(); } #ifdef SOLARIS_MUTEX assert (_cnt==0); --- 254,266 ---- MICOMT::Mutex::~Mutex() { + #ifdef MTDEBUG if (MICO::Logger::IsLogged(MICO::Logger::Thread)) { __mtdebug_lock(); MICO::Logger::Stream (MICO::Logger::Thread) ! __NAME (<< name ()) ! << ": Mutex::~Mutex ()" << endl; __mtdebug_unlock(); } + #endif #ifdef SOLARIS_MUTEX assert (_cnt==0); *************** *** 273,281 **** MICOMT::CondVar::CondVar() { ! __NAME( name ("<UnNamed CondVar>") ); if (MICO::Logger::IsLogged(MICO::Logger::Thread)) { __mtdebug_lock(); MICO::Logger::Stream (MICO::Logger::Thread) ! __NAME (<< name ()) << ": ContVar::CondVar ()" << endl; __mtdebug_unlock(); } --- 277,286 ---- MICOMT::CondVar::CondVar() { ! __NAME( name ("<UnNamed CondVar>") ); if (MICO::Logger::IsLogged(MICO::Logger::Thread)) { __mtdebug_lock(); MICO::Logger::Stream (MICO::Logger::Thread) ! __NAME (<< name ()) ! << ": ContVar::CondVar ()" << endl; __mtdebug_unlock(); } *************** *** 292,296 **** __mtdebug_lock(); MICO::Logger::Stream (MICO::Logger::Thread) ! __NAME (<< name ()) << ": ContVar::~CondVar ()" << endl; __mtdebug_unlock(); } --- 297,302 ---- __mtdebug_lock(); MICO::Logger::Stream (MICO::Logger::Thread) ! __NAME (<< name ()) ! << ": ContVar::~CondVar ()" << endl; __mtdebug_unlock(); } |
From: Karel G. <kg...@us...> - 2001-11-24 19:45:29
|
Update of /cvsroot/micomt/mico/include/mico In directory usw-pr-cvs1:/tmp/cvs-serv31239/include/mico Modified Files: iop.h mt_manager.h Log Message: - fixed compilation of final build - fixed --enable-threads configure option - fixed server scalability problem with thread-pool concurrency model which uses separate reader/writer threads for each GIOP connection Index: iop.h =================================================================== RCS file: /cvsroot/micomt/mico/include/mico/iop.h,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -r1.33 -r1.34 *** iop.h 2001/10/26 19:59:59 1.33 --- iop.h 2001/11/24 19:45:26 1.34 *************** *** 372,375 **** --- 372,378 ---- MICOMT::Mutex _excl_mutex; + CORBA::Boolean _M_use_reader_thread; + CORBA::Boolean _M_use_writer_thread; + CORBA::Boolean input_ready(); void close_connection(); *************** *** 393,400 **** void output_handler (CORBA::Buffer *); - GIOPConn (CORBA::Dispatcher *, CORBA::Transport *, GIOPConnCallback *, - GIOPCodec *, CORBA::Long tmout = 0, CORBA::ULong max_size = 0); #ifdef HAVE_THREADS void terminate(); #endif virtual ~GIOPConn (); --- 396,409 ---- void output_handler (CORBA::Buffer *); #ifdef HAVE_THREADS void terminate(); + + GIOPConn (CORBA::Dispatcher *, CORBA::Transport *, GIOPConnCallback *, + GIOPCodec *, CORBA::Long tmout = 0, CORBA::ULong max_size = 0, + CORBA::Boolean __reader_thread = FALSE, + CORBA::Boolean __writer_thread = FALSE); + #else + GIOPConn (CORBA::Dispatcher *, CORBA::Transport *, GIOPConnCallback *, + GIOPCodec *, CORBA::Long tmout = 0, CORBA::ULong max_size = 0); #endif virtual ~GIOPConn (); *************** *** 404,417 **** void output (CORBA::Buffer *); ! CORBA::Boolean check_events () { return FALSE; }; ! void ref () { _refcnt++; }; CORBA::Boolean deref (CORBA::Boolean all = FALSE); ! void get_exclusive () { _excl_mutex.lock(); }; ! void release_exclusive () { _excl_mutex.unlock(); }; #else ! void start() {}; ! void output (CORBA::Buffer *b) { output_handler(b); }; CORBA::Boolean check_events (); --- 413,434 ---- void output (CORBA::Buffer *); ! CORBA::Boolean check_events () ! { return FALSE; }; ! void ref () ! { _refcnt++; }; CORBA::Boolean deref (CORBA::Boolean all = FALSE); ! void get_exclusive () ! { _excl_mutex.lock(); }; ! ! void release_exclusive () ! { _excl_mutex.unlock(); }; #else ! void start() ! {}; ! ! void output (CORBA::Buffer *b) ! { this->output_handler(b); }; CORBA::Boolean check_events (); *************** *** 420,425 **** CORBA::Boolean deref (CORBA::Boolean all = FALSE); ! void get_exclusive () {}; ! void release_exclusive () {}; #endif --- 437,444 ---- CORBA::Boolean deref (CORBA::Boolean all = FALSE); ! void get_exclusive () ! {}; ! void release_exclusive () ! {}; #endif *************** *** 672,678 **** void kill_conn (GIOPConn *, CORBA::Boolean redo = FALSE); ! #ifndef HAVE_THREADS virtual CORBA::Dispatcher* Dispatcher(); - #endif }; --- 691,696 ---- void kill_conn (GIOPConn *, CORBA::Boolean redo = FALSE); ! virtual CORBA::Dispatcher* Dispatcher(); }; *************** *** 817,823 **** void kill_conn (GIOPConn *, CORBA::Boolean redo = FALSE); ! #ifndef HAVE_THREADS ! virtual CORBA::Dispatcher *Dispatcher(); ! #endif }; --- 835,840 ---- void kill_conn (GIOPConn *, CORBA::Boolean redo = FALSE); ! ! virtual CORBA::Dispatcher* Dispatcher(); }; Index: mt_manager.h =================================================================== RCS file: /cvsroot/micomt/mico/include/mico/mt_manager.h,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -r1.27 -r1.28 *** mt_manager.h 2001/10/26 19:59:59 1.27 --- mt_manager.h 2001/11/24 19:45:26 1.28 *************** *** 450,467 **** class MTManager { ! static CORBA::Long _S_thread_model; public: ! enum ThreadModel { ! ThreadPool, ! ThreadPerConnection, ! ThreadPerRequest }; static void ! set_thread_model(MICO::MTManager::ThreadModel __model); static CORBA::Long ! get_thread_model(); static CORBA::Boolean --- 450,467 ---- class MTManager { ! static CORBA::Long _S_concurrency_model; public: ! enum ConcurrencyModel { ! _S_thread_pool, ! _S_thread_per_connection, ! _S_thread_per_request }; static void ! concurrency_model(MICO::MTManager::ConcurrencyModel __model); static CORBA::Long ! concurrency_model(); static CORBA::Boolean |
From: Karel G. <kg...@us...> - 2001-11-24 19:45:29
|
Update of /cvsroot/micomt/mico/include/mico/os-thread In directory usw-pr-cvs1:/tmp/cvs-serv31239/include/mico/os-thread Modified Files: pthreads.h Log Message: - fixed compilation of final build - fixed --enable-threads configure option - fixed server scalability problem with thread-pool concurrency model which uses separate reader/writer threads for each GIOP connection Index: pthreads.h =================================================================== RCS file: /cvsroot/micomt/mico/include/mico/os-thread/pthreads.h,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -r1.26 -r1.27 *** pthreads.h 2001/10/26 19:59:59 1.26 --- pthreads.h 2001/11/24 19:45:26 1.27 *************** *** 34,38 **** #define __os_thread_pthreads_h__ ! static void _init (MICO_ULong _tpsize, MICO_ULong _tpincr); /********************************* Mutex *************************************/ --- 34,38 ---- #define __os_thread_pthreads_h__ ! extern void _init (); /********************************* Mutex *************************************/ *************** *** 46,50 **** * critical sections. */ ! class Mutex __NAME( :public NamedObject ) { public: --- 46,51 ---- * critical sections. */ ! class Mutex __NAME( :public NamedObject ) ! { public: *************** *** 101,105 **** { ErrorType ret = NoError; ! if (MICO::Logger::IsLogged (MICO::Logger::Thread)) { __mtdebug_lock(); --- 102,106 ---- { ErrorType ret = NoError; ! #ifdef MTDEBUG if (MICO::Logger::IsLogged (MICO::Logger::Thread)) { __mtdebug_lock(); *************** *** 108,111 **** --- 109,113 ---- __mtdebug_unlock(); } + #endif switch (pthread_mutex_trylock (&_mutex)) { case EBUSY: ret = MICOMT::Mutex::AlreadyLocked; break; *************** *** 127,131 **** */ void lock() ! { if (MICO::Logger::IsLogged (MICO::Logger::Thread)) { __mtdebug_lock(); --- 129,134 ---- */ void lock() ! { ! #ifdef MTDEBUG if (MICO::Logger::IsLogged (MICO::Logger::Thread)) { __mtdebug_lock(); *************** *** 134,137 **** --- 137,141 ---- __mtdebug_unlock(); } + #endif #ifdef SOLARIS_MUTEX if (_rec) { *************** *** 156,159 **** --- 160,164 ---- void unlock() { + #ifdef MTDEBUG if (MICO::Logger::IsLogged (MICO::Logger::Thread)) { __mtdebug_lock(); *************** *** 162,165 **** --- 167,171 ---- __mtdebug_unlock(); } + #endif #ifdef SOLARIS_MUTEX if (_rec) { *************** *** 195,199 **** * a condition with a mutex. */ ! class CondVar __NAME( :public NamedObject ) { public: //! \name Constructor/Destructor --- 201,206 ---- * a condition with a mutex. */ ! class CondVar __NAME( :public NamedObject ) ! { public: //! \name Constructor/Destructor *************** *** 215,218 **** --- 222,226 ---- MICO_Boolean wait( Mutex &_mutex ) { + #ifdef MTDEBUG if (MICO::Logger::IsLogged (MICO::Logger::Thread)) { __mtdebug_lock(); *************** *** 221,224 **** --- 229,233 ---- __mtdebug_unlock(); } + #endif return ( pthread_cond_wait( &_cond, &_mutex._mutex ) == 0 ); }; *************** *** 237,241 **** { timespec timeout; ! if (MICO::Logger::IsLogged (MICO::Logger::Thread)) { __mtdebug_lock(); --- 246,250 ---- { timespec timeout; ! #ifdef MTDEBUG if (MICO::Logger::IsLogged (MICO::Logger::Thread)) { __mtdebug_lock(); *************** *** 244,247 **** --- 253,257 ---- __mtdebug_unlock(); } + #endif timeout.tv_sec = 0; timeout.tv_nsec = tmout * 1000; *************** *** 254,258 **** */ void broadcast() ! { if (MICO::Logger::IsLogged (MICO::Logger::Thread)) { __mtdebug_lock(); --- 264,269 ---- */ void broadcast() ! { ! #ifdef MTDEBUG if (MICO::Logger::IsLogged (MICO::Logger::Thread)) { __mtdebug_lock(); *************** *** 261,264 **** --- 272,276 ---- __mtdebug_unlock(); } + #endif pthread_cond_broadcast( &_cond ); }; *************** *** 269,273 **** */ void signal() ! { if (MICO::Logger::IsLogged (MICO::Logger::Thread)) { __mtdebug_lock(); --- 281,286 ---- */ void signal() ! { ! #ifdef MTDEBUG if (MICO::Logger::IsLogged (MICO::Logger::Thread)) { __mtdebug_lock(); *************** *** 276,279 **** --- 289,293 ---- __mtdebug_unlock(); } + #endif pthread_cond_signal( &_cond ); }; *************** *** 306,309 **** --- 320,324 ---- void rdlock() { + #ifdef MTDEBUG if (MICO::Logger::IsLogged (MICO::Logger::Thread)) { __mtdebug_lock(); *************** *** 312,315 **** --- 327,331 ---- __mtdebug_unlock(); } + #endif pthread_rwlock_rdlock( &_rwlock ); } *************** *** 320,323 **** --- 336,340 ---- void wrlock() { + #ifdef MTDEBUG if (MICO::Logger::IsLogged (MICO::Logger::Thread)) { __mtdebug_lock(); *************** *** 326,329 **** --- 343,347 ---- __mtdebug_unlock(); } + #endif pthread_rwlock_wrlock( &_rwlock ); } *************** *** 334,337 **** --- 352,356 ---- void unlock() { + #ifdef MTDEBUG if (MICO::Logger::IsLogged (MICO::Logger::Thread)) { __mtdebug_lock(); *************** *** 340,343 **** --- 359,363 ---- __mtdebug_unlock(); } + #endif pthread_rwlock_unlock( &_rwlock ); } *************** *** 354,358 **** * counter for resources shared between threads. */ ! class Semaphore __NAME( :public NamedObject ) { private: sem_t s; //!< The system semaphore --- 374,379 ---- * counter for resources shared between threads. */ ! class Semaphore __NAME( :public NamedObject ) ! { private: sem_t s; //!< The system semaphore *************** *** 388,391 **** --- 409,413 ---- void wait() { + #ifdef MTDEBUG if (MICO::Logger::IsLogged (MICO::Logger::Thread)) { __mtdebug_lock(); *************** *** 394,397 **** --- 416,420 ---- __mtdebug_unlock(); } + #endif while ( sem_wait( &s ) == EINTR ) {} } *************** *** 404,408 **** { Semaphore::ErrorType ret = MICOMT::Semaphore::NoError; ! if (MICO::Logger::IsLogged (MICO::Logger::Thread)) { __mtdebug_lock(); --- 427,431 ---- { Semaphore::ErrorType ret = MICOMT::Semaphore::NoError; ! #ifdef MTDEBUG if (MICO::Logger::IsLogged (MICO::Logger::Thread)) { __mtdebug_lock(); *************** *** 411,414 **** --- 434,438 ---- __mtdebug_unlock(); } + #endif if (sem_trywait (&s) < 0) *************** *** 429,432 **** --- 453,457 ---- void post() { + #ifdef MTDEBUG if (MICO::Logger::IsLogged (MICO::Logger::Thread)) { __mtdebug_lock(); *************** *** 435,438 **** --- 460,464 ---- __mtdebug_unlock(); } + #endif sem_post( &s ); } *************** *** 448,452 **** * Each thread object encapsulates a single execution context. */ ! class Thread __NAME( :public NamedObject ) { public: /*! --- 474,479 ---- * Each thread object encapsulates a single execution context. */ ! class Thread __NAME( :public NamedObject ) ! { public: /*! *************** *** 666,669 **** --- 693,697 ---- */ ErrorType create_thread () { + #ifdef MTDEBUG if (MICO::Logger::IsLogged (MICO::Logger::Thread)) { __mtdebug_lock(); *************** *** 672,675 **** --- 700,704 ---- __mtdebug_unlock(); } + #endif #ifdef _THR_CREATE_AND_BLOCK _ready.lock(); *************** *** 680,683 **** --- 709,713 ---- if (( r = pthread_create (&_id, NULL, ThreadWrapper, this)) != 0) { + #ifdef MTDEBUG if (MICO::Logger::IsLogged (MICO::Logger::Thread)) { __mtdebug_lock(); *************** *** 687,690 **** --- 717,721 ---- __mtdebug_unlock(); } + #endif return ThreadFailure; } *************** *** 717,720 **** --- 748,752 ---- */ void terminate (void *exitval) { + #ifdef MTDEBUG if (MICO::Logger::IsLogged (MICO::Logger::Thread)) { __mtdebug_lock(); *************** *** 723,726 **** --- 755,759 ---- __mtdebug_unlock(); } + #endif assert (!pthread_cancel (_id)); }; *************** *** 731,734 **** --- 764,768 ---- */ void wait () { + #ifdef MTDEBUG if (MICO::Logger::IsLogged (MICO::Logger::Thread)) { __mtdebug_lock(); *************** *** 737,740 **** --- 771,775 ---- __mtdebug_unlock(); } + #endif pthread_join (id(), NULL); }; |
From: Karel G. <kg...@us...> - 2001-11-24 19:45:29
|
Update of /cvsroot/micomt/mico In directory usw-pr-cvs1:/tmp/cvs-serv31239 Modified Files: CHANGES.mt configure.in Log Message: - fixed compilation of final build - fixed --enable-threads configure option - fixed server scalability problem with thread-pool concurrency model which uses separate reader/writer threads for each GIOP connection Index: CHANGES.mt =================================================================== RCS file: /cvsroot/micomt/mico/CHANGES.mt,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -r1.20 -r1.21 *** CHANGES.mt 2001/11/04 18:34:52 1.20 --- CHANGES.mt 2001/11/24 19:45:26 1.21 *************** *** 1,3 **** --- 1,7 ---- + - fixed compilation of final build + - fixed --enable-threads configure option + - fixed server scalability problem with thread-pool concurrency model + which uses separate reader/writer threads for each GIOP connection - added initialization of MT stuff into main ORB init - implemented priority handling in GNU Pth thread support Index: configure.in =================================================================== RCS file: /cvsroot/micomt/mico/configure.in,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -r1.28 -r1.29 *** configure.in 2001/11/04 18:34:52 1.28 --- configure.in 2001/11/24 19:45:26 1.29 *************** *** 371,383 **** if test X"$platform_supports_threads" = Xno; then if test X"$use_threads" = Xyes; then ! if test X"$use_pthreads" = Xno; then ! AC_CHECK_LIB(thread, open, use_solaris_threads=yes, use_solaris_threads=no) ! if test X"$use_solaris_threads" = Xyes; then ! AC_CHECK_HEADERS(thread.h semaphore.h synch.h,, ! AC_MSG_ERROR(solaris thread header files incomplete) ! ) ! AC_DEFINE(HAVE_SOLARIS_THREADS) ! SHLIBS="-lthread" ! fi else AC_CHECK_LIB(pthread, open, use_pthreads=yes, use_pthreads=no) --- 371,383 ---- if test X"$platform_supports_threads" = Xno; then if test X"$use_threads" = Xyes; then ! # if test X"$use_pthreads" = Xno; then ! AC_CHECK_LIB(thread, open, use_solaris_threads=yes, use_solaris_threads=no) ! if test X"$use_solaris_threads" = Xyes; then ! AC_CHECK_HEADERS(thread.h semaphore.h synch.h,, ! AC_MSG_ERROR(solaris thread header files incomplete) ! ) ! AC_DEFINE(HAVE_SOLARIS_THREADS) ! SHLIBS="-lthread" ! # fi else AC_CHECK_LIB(pthread, open, use_pthreads=yes, use_pthreads=no) *************** *** 399,403 **** AC_CHECK_PROG(pth-config, use_pth_threads=yes, use_pth_threads=no) SHLIBS="`pth-config --libs`" - echo "GNU Pth : $SHLIBS" fi fi --- 399,402 ---- |
From: Karel G. <kg...@us...> - 2001-11-04 20:10:06
|
Update of /cvsroot/micomt/mico/demo/ssl In directory usw-pr-cvs1:/tmp/cvs-serv3516 Added Files: c_cert.pem c_key.pem s_cert.pem s_key.pem Log Message: - forgot to add these files in mico 2.3.6 merge --- NEW FILE: c_cert.pem --- -----BEGIN CERTIFICATE----- MIICDjCCAbgCAQAwDQYJKoZIhvcNAQEEBQAwgZExCzAJBgNVBAYTAkRFMQ8wDQYD VQQIEwZIZXNzZW4xEjAQBgNVBAcTCUZyYW5rZnVydDEPMA0GA1UEChMGVW5pRkZN MQwwCgYDVQQLEwNWU0IxDzANBgNVBAMTBlJvZW1lcjEtMCsGCSqGSIb3DQEJARYe cm9lbWVyQHZzYi5jcy51bmktZnJhbmtmdXJ0LmRlMB4XDTk4MDMxNzIzNTQwMFoX DTAwMTIxMTIzNTQwMFowgZExCzAJBgNVBAYTAkRFMQ8wDQYDVQQIEwZIZXNzZW4x EjAQBgNVBAcTCUZyYW5rZnVydDEPMA0GA1UEChMGVW5pRkZNMQwwCgYDVQQLEwNW U0IxDzANBgNVBAMTBlJvZW1lcjEtMCsGCSqGSIb3DQEJARYecm9lbWVyQHZzYi5j cy51bmktZnJhbmtmdXJ0LmRlMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAOHoM6i6 DBR9GKreHEXiHosGJugEjcQa5hl06JEjVAjtHlRqUt6t26Ufu27ZA1L1hQCoKQ80 5bpcL5L9Tk9F/hsCAwEAATANBgkqhkiG9w0BAQQFAANBAMOEBpouVOf51A6I0FJa XceC1FyI2J+5mVdlcIQBCGo3/dsgWuxiZB8hFtdx9xTLd1GDb5Koboz6+k/yfOKO Jgw= -----END CERTIFICATE----- --- NEW FILE: c_key.pem --- -----BEGIN RSA PRIVATE KEY----- MIIBOgIBAAJBAOHoM6i6DBR9GKreHEXiHosGJugEjcQa5hl06JEjVAjtHlRqUt6t 26Ufu27ZA1L1hQCoKQ805bpcL5L9Tk9F/hsCAwEAAQJBAIbJ5CDVOSX0agZxVg9A Vpb+ybIAHZIXtpkTzzviB1729Nu5lLb5Fymt4hggqWhUXb0VS+Iw5zZD8HgeBC3M dBkCIQD3m4MHNU7p1WWlNAdfK/uPQs8jwMXCWrVtDFqHWkK9VwIhAOmQZT8uBGGy ratEk0QoCdk9iVpQRMVn+K6Oyj1Ku4bdAiBgCU4x3ohEA8PP5rUxQbLpZuVGnb9W Wa5ipFb8hpK6MwIgRZ3Cb9h5ed1WImxoMLJ2bQgIfqDaPrTEzNLGuQojZwkCID8P HueqJWqfd8buqGajR4/Vh5b0g6jE/KZLULjVgI+6 -----END RSA PRIVATE KEY----- --- NEW FILE: s_cert.pem --- -----BEGIN CERTIFICATE----- MIICqDCCAlKgAwIBAgIBADANBgkqhkiG9w0BAQQFADBzMQswCQYDVQQGEwJVUzEL MAkGA1UECBMCQ0ExFjAUBgNVBAcTDVNhbiBGcmFuY2lzY28xDTALBgNVBAoTBEFQ LUMxEzARBgNVBAMTCkFybm8gUHVkZXIxGzAZBgkqhkiG9w0BCQEWDGFybm9AYXR0 LmNvbTAeFw0wMTA3MjkyMTQ3MjlaFw0wNDA0MjQyMTQ3MjlaMHMxCzAJBgNVBAYT AlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNU2FuIEZyYW5jaXNjbzENMAsGA1UE ChMEQVAtQzETMBEGA1UEAxMKQXJubyBQdWRlcjEbMBkGCSqGSIb3DQEJARYMYXJu b0BhdHQuY29tMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAL5TibViA/0OVfyETgKi oE1AqJzFW9mTpFHby+jVkj37TAhQ/LUdvA7aDmSpnYqESgJMsDYsVMAoTeaTd+OQ xpcCAwEAAaOB0DCBzTAdBgNVHQ4EFgQU5hRyan+8on1PDoI/SN5MZ9lhPjQwgZ0G A1UdIwSBlTCBkoAU5hRyan+8on1PDoI/SN5MZ9lhPjShd6R1MHMxCzAJBgNVBAYT AlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNU2FuIEZyYW5jaXNjbzENMAsGA1UE ChMEQVAtQzETMBEGA1UEAxMKQXJubyBQdWRlcjEbMBkGCSqGSIb3DQEJARYMYXJu b0BhdHQuY29tggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEEBQADQQC9qCNL yUHUYRNxbpw1uTtl6iO5Am49EVHOdUs4UhycFzaD1ttAwrlv/WtrUh1CVVQlQr3c g9acINFL0nlp60Ws -----END CERTIFICATE----- --- NEW FILE: s_key.pem --- -----BEGIN RSA PRIVATE KEY----- MIIBOwIBAAJBAL5TibViA/0OVfyETgKioE1AqJzFW9mTpFHby+jVkj37TAhQ/LUd vA7aDmSpnYqESgJMsDYsVMAoTeaTd+OQxpcCAwEAAQJAUW5clQaCvlrL32acGfSK sYLgoXKvgb/xpjRsYgo+r9V/uToCaAT3qOmf580c21/+GFvpnGhz+6BGyWWxUFds AQIhAOwuJsqsi8EOC5hF/RBiiJAYRsoCpX+H2tzlMCIgVFhBAiEAzkxO5pDwWWNl khSfN0Io7HQe3EPeVFe+Q49oNC7QqNcCIQCnGJPrap5JzQUZC9NaZ0wVHofe3nZ2 vwhyplginNrvwQIgZE1Fr2SY910UbUoJf1xzeUOcHYwB9RAUOdTn3TdFzFECIQCl 2yle7JcIHpL86L6iRJJ/325j5zeULftMjxHel5DT5g== -----END RSA PRIVATE KEY----- |
From: Karel G. <kg...@us...> - 2001-11-04 18:34:56
|
Update of /cvsroot/micomt/mico/orb/os-thread In directory usw-pr-cvs1:/tmp/cvs-serv12565/orb/os-thread Modified Files: pththreads.cc Log Message: - added initialization of MT stuff into main ORB init - implemented priority handling in GNU Pth thread support - fixed data key handling in GNU Pth thread support - fixed GNU Pth support for compilation - changed configure to disable MICO parts which are not MT ready - added support for GNU Pth thread package into configure - changed configure for better handling of thread package configuration - changed optimization from '-O' to '-O2' Index: pththreads.cc =================================================================== RCS file: /cvsroot/micomt/mico/orb/os-thread/pththreads.cc,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -r1.8 -r1.9 *** pththreads.cc 2001/10/26 20:00:03 1.8 --- pththreads.cc 2001/11/04 18:34:53 1.9 *************** *** 32,36 **** #define MICO_CONF_IMR - #include <pthread.h> #include <CORBA-SMALL.h> #include <mico/impl.h> --- 32,35 ---- *************** *** 61,73 **** // takes care of initializing whatever has to be initialized. // ! void MICOMT::_init (MICO_ULong _tpsize, MICO_ULong _tpincr) { ! ! if (MICO::Logger::IsLogged(MICO::Logger::Thread)) { ! __mtdebug_lock(); ! MICO::Logger::Stream (MICO::Logger::Thread) ! << "_init (_tpsize = " << _tpsize << ", _tpincr = " ! << _tpincr << ")" << endl; ! __mtdebug_unlock(); ! } } --- 60,72 ---- // takes care of initializing whatever has to be initialized. // ! void MICOMT::_init () ! { ! pth_init(); ! if (MICO::Logger::IsLogged(MICO::Logger::Thread)) { ! __mtdebug_lock(); ! MICO::Logger::Stream (MICO::Logger::Thread) ! << "MICOMT::_init()" << endl; ! __mtdebug_unlock(); ! } } *************** *** 153,163 **** __mtdebug_unlock(); } ! _cond.lock(); ! pth_cleanup_push( reinterpret_cast<void (*)(void *)>(&&MICOMT::CondVar::unlock, this )); while (count <= 0) ! _cond.wait(); --count; ! pth_cleanup_pop( 1 ); } --- 152,168 ---- __mtdebug_unlock(); } ! //_cond.lock(); ! //MICOMT::AutoLock __lock(_mutex); ! _mutex.lock(); ! //pth_cleanup_push( reinterpret_cast<void (*)(void *)>(&&MICOMT::CondVar::unlock, this )); ! //pth_cleanup_push( reinterpret_cast<void (*)(void *)>(&&MICOMT::Mutex::unlock, this )); ! void (MICOMT::Mutex::*unlock_method)(void) = &MICOMT::Mutex::unlock; ! //pth_cleanup_push((_mutex.*unlock_method),0); while (count <= 0) ! _cond.wait(_mutex); --count; ! _mutex.unlock(); ! //pth_cleanup_pop( 1 ); } *************** *** 171,178 **** __mtdebug_unlock(); } ! _cond.lock(); if (count++ == 0) _cond.signal(); ! _cond.unlock(); } --- 176,185 ---- __mtdebug_unlock(); } ! //_cond.lock(); ! _mutex.lock(); if (count++ == 0) _cond.signal(); ! //_cond.unlock(); ! _mutex.unlock(); } *************** *** 240,244 **** // void ! MICOMT::Thread::priority (MICO_Long new_priority) { } --- 247,255 ---- // void ! MICOMT::Thread::priority (MICO_Long new_priority) ! { ! pth_attr_t __attr = pth_attr_of(this->id()); ! pth_attr_set(__attr, PTH_ATTR_PRIO, new_priority); ! pth_attr_destroy(__attr); } |
From: Karel G. <kg...@us...> - 2001-11-04 18:34:56
|
Update of /cvsroot/micomt/mico/orb In directory usw-pr-cvs1:/tmp/cvs-serv12565/orb Modified Files: orb.cc Log Message: - added initialization of MT stuff into main ORB init - implemented priority handling in GNU Pth thread support - fixed data key handling in GNU Pth thread support - fixed GNU Pth support for compilation - changed configure to disable MICO parts which are not MT ready - added support for GNU Pth thread package into configure - changed configure for better handling of thread package configuration - changed optimization from '-O' to '-O2' Index: orb.cc =================================================================== RCS file: /cvsroot/micomt/mico/orb/orb.cc,v retrieving revision 1.44 retrieving revision 1.45 diff -C2 -r1.44 -r1.45 *** orb.cc 2001/10/26 20:00:02 1.44 --- orb.cc 2001/11/04 18:34:53 1.45 *************** *** 2605,2608 **** --- 2605,2611 ---- CORBA::ORB_init (int &argc, char **argv, const char *_id) { + #ifdef HAVE_THREADS + MICOMT::_init(); + #endif OSNet::sock_init(); |