|
From: Carlo W. <li...@us...> - 2002-02-13 03:55:37
|
CVSROOT : /cvsroot/libcw
Module : src
Commit time: 2002-01-13 03:55:36 UTC
Modified files:
libcwd/debug.cc libcwd/threading.cc
libcwd/include/libcw/Makefile.am
libcwd/include/libcw/class_debug.h
libcwd/include/libcw/class_debug.inl
libcwd/include/libcw/private_threading.h
libcwd/testsuite/libcwd.nodebug/nodebug.cc
libcwd/testsuite/libcwd.nodebug/nodebug.re
libcwd/testsuite/libcwd.tst/alloctag.cc
libcwd/testsuite/libcwd.tst/bfd.cc
libcwd/testsuite/libcwd.tst/dlopen.re
libcwd/testsuite/libcwd.tst/flush.cc
libcwd/testsuite/libcwd.tst/leak.cc
libcwd/testsuite/libcwd.tst/marker.cc
libcwd/testsuite/libcwd.tst/test_delete.cc
Added files:
libcwd/include/libcw/private_lock_interface.h
libcwd/include/libcw/set_ostream.inl
Log message:
Make 'make full-check' work again.
Use locking inside set_ostream and free the previous mutex if any.
---------------------- diff included ----------------------
Index: src/libcwd/debug.cc
diff -u src/libcwd/debug.cc:1.67 src/libcwd/debug.cc:1.68
--- src/libcwd/debug.cc:1.67 Mon Feb 11 21:40:31 2002
+++ src/libcwd/debug.cc Tue Feb 12 19:55:25 2002
@@ -1,4 +1,4 @@
-// $Header: /cvsroot/l/li/libcw/src/libcwd/debug.cc,v 1.67 2002/02/12 05:40:31 libcw Exp $
+// $Header: /cvsroot/l/li/libcw/src/libcwd/debug.cc,v 1.68 2002/02/13 03:55:25 libcw Exp $
//
// Copyright (C) 2000 - 2001, by
//
@@ -94,6 +94,7 @@
++__libcwd_tsd.library_call;
++LIBCWD_DO_TSD_MEMBER_OFF(libcw_do);
#endif
+#ifdef LIBCWD_THREAD_SAFE
LIBCWD_DISABLE_CANCEL // We don't want Dout() to be a cancellation point.
if (mutex)
{
@@ -109,12 +110,16 @@
else
{
WST_second_time = true;
- DoutFatal(dc::core, "When using multiple threads, you must provide a locking mechanism for the debug output stream. You can pass a pointer to a mutex with `debug_ct::set_ostream'.");
+ DoutFatal(dc::core, "When using multiple threads, you must provide a locking mechanism for the debug output stream. "
+ "You can pass a pointer to a mutex with `debug_ct::set_ostream' (see documentation/html/group__group__destination.html).");
}
}
else
os->write(buf, curlen);
LIBCWD_ENABLE_CANCEL
+#else // !LIBCWD_THREAD_SAFE
+ os->write(buf, curlen);
+#endif // !LIBCWD_THREAD_SAFE
#ifdef DEBUGMALLOC
--LIBCWD_DO_TSD_MEMBER_OFF(libcw_do);
--__libcwd_tsd.library_call;
@@ -1544,10 +1549,44 @@
template<>
void debug_ct::set_ostream(std::ostream* os, pthread_mutex_t* mutex)
{
- M_mutex = new _private_::pthread_lock_interface_ct(mutex);
+ _private_::lock_interface_base_ct* new_mutex = new _private_::pthread_lock_interface_ct(mutex);
+ LIBCWD_DEFER_CANCEL
+ _private_::mutex_tct<_private_::set_ostream_instance>::lock();
+ _private_::lock_interface_base_ct* old_mutex = M_mutex;
+ if (old_mutex)
+ old_mutex->lock(); // Make sure all other threads left this critical area.
+ M_mutex = new_mutex;
+ if (old_mutex)
+ {
+ old_mutex->unlock();
+ delete old_mutex;
+ }
private_set_ostream(os);
+ _private_::mutex_tct<_private_::set_ostream_instance>::unlock();
+ LIBCWD_RESTORE_CANCEL
}
#endif // LIBCWD_THREAD_SAFE
+
+/**
+ * \brief Set output device.
+ * \ingroup group_destination
+ *
+ * Assign a new \c ostream to this %debug object (default is <CODE>std::cerr</CODE>).
+ */
+void debug_ct::set_ostream(std::ostream* os)
+{
+#ifdef LIBCWD_THREAD_SAFE
+ if (_private_::WST_multi_threaded)
+ Dout(dc::warning, location_ct((char*)__builtin_return_address(0) + builtin_return_address_offset) << ": You should passing a locking mechanism to `set_ostream' for the ostream (see documentation/html/group__group__destination.html)");
+ LIBCWD_DEFER_CANCEL
+ _private_::mutex_tct<_private_::set_ostream_instance>::lock();
+#endif
+ private_set_ostream(os);
+#ifdef LIBCWD_THREAD_SAFE
+ _private_::mutex_tct<_private_::set_ostream_instance>::unlock();
+ LIBCWD_RESTORE_CANCEL
+#endif
+}
} // namespace debug
} // namespace libcw
Index: src/libcwd/include/libcw/Makefile.am
diff -u src/libcwd/include/libcw/Makefile.am:1.23 src/libcwd/include/libcw/Makefile.am:1.24
--- src/libcwd/include/libcw/Makefile.am:1.23 Fri Feb 8 14:29:29 2002
+++ src/libcwd/include/libcw/Makefile.am Tue Feb 12 19:55:26 2002
@@ -43,9 +43,11 @@
private_internal_string.h \
private_internal_stringstream.h \
private_internal_vector.h \
+ private_lock_interface.h \
private_set_alloc_checking.h \
private_struct_TSD.h \
private_threading.h \
+ set_ostream.inl \
strerrno.h \
struct_debug_tsd.h \
type_info.h
Index: src/libcwd/include/libcw/class_debug.h
diff -u src/libcwd/include/libcw/class_debug.h:1.10 src/libcwd/include/libcw/class_debug.h:1.11
--- src/libcwd/include/libcw/class_debug.h:1.10 Mon Feb 11 21:40:32 2002
+++ src/libcwd/include/libcw/class_debug.h Tue Feb 12 19:55:26 2002
@@ -1,4 +1,4 @@
-// $Header: /cvsroot/l/li/libcw/src/libcwd/include/libcw/class_debug.h,v 1.10 2002/02/12 05:40:32 libcw Exp $
+// $Header: /cvsroot/l/li/libcw/src/libcwd/include/libcw/class_debug.h,v 1.11 2002/02/13 03:55:26 libcw Exp $
//
// Copyright (C) 2000 - 2002, by
//
@@ -30,6 +30,9 @@
#ifndef LIBCW_STRUCT_DEBUG_TSD
#include <libcw/struct_debug_tsd.h>
#endif
+#ifndef LIBCW_PRIVATE_LOCK_INTERFACE_H
+#include <libcw/private_lock_interface.h>
+#endif
#ifndef LIBCW_IOSFWD
#define LIBCW_IOSFWD
#include <iosfwd>
@@ -38,10 +41,6 @@
namespace libcw {
namespace debug {
-namespace _private_ {
- class lock_interface_base_ct;
-} // namespace _private_
-
//===================================================================================================
// class debug_ct
//
@@ -260,73 +259,12 @@
#endif // LIBCWD_THREAD_SAFE
};
-#ifdef LIBCWD_THREAD_SAFE
-namespace _private_ {
-
-class lock_interface_base_ct {
-public:
- virtual int trylock(void) = 0;
- virtual void lock(void) = 0;
- virtual void unlock(void) = 0;
-};
-
-template<class T>
- class lock_interface_tct : public lock_interface_base_ct {
- private:
- T* ptr;
- virtual int trylock(void) { return ptr->trylock(); }
- virtual void lock(void) { ptr->lock(); }
- virtual void unlock(void) { ptr->unlock(); }
- public:
- lock_interface_tct(T* mutex) : ptr(mutex) { }
- };
-
- class pthread_lock_interface_ct : public lock_interface_base_ct {
- private:
- pthread_mutex_t* ptr;
- virtual int trylock(void) { return pthread_mutex_trylock(ptr); }
- virtual void lock(void) { pthread_mutex_lock(ptr); }
- virtual void unlock(void) { pthread_mutex_unlock(ptr); }
- public:
- pthread_lock_interface_ct(pthread_mutex_t* mutex) : ptr(mutex) { }
- };
-
-} // namespace _private_
-
-/**
- * \brief Set output device and provide external lock.
- * \ingroup group_destination
- *
- * Assign a new \c ostream to this %debug object.
- * The \c ostream will only be written to after obtaining the lock
- * that is passed as second argument. Each \c ostream needs to have
- * a unique lock. If the application also writes directly
- * to the same \c ostream then use the same lock.
- *
- * <b>Example:</b>
- *
- * \code
- * MyLock lock;
- *
- * // Uses MyLock::lock(), MyLock::trylock() and MyLock::unlock().
- * Debug( libcw_do.set_ostream(&std::cerr, &lock) );
- *
- * lock.lock();
- * std::cerr << "The application uses cerr too\n";
- * lock.unlock();
- * \endcode
- */
-template<class T>
- void debug_ct::set_ostream(std::ostream* os, T* mutex)
- {
- M_mutex = new _private_::lock_interface_tct<T>(mutex);
- private_set_ostream(os);
- }
-
-#endif // LIBCWD_THREAD_SAFE
-
} // namespace debug
} // namespace libcw
+
+#ifndef LIBCW_SET_OSTREAM_INL
+#include <libcw/set_ostream.inl>
+#endif
#endif // LIBCW_CLASS_DEBUG_H
Index: src/libcwd/include/libcw/class_debug.inl
diff -u src/libcwd/include/libcw/class_debug.inl:1.7 src/libcwd/include/libcw/class_debug.inl:1.8
--- src/libcwd/include/libcw/class_debug.inl:1.7 Mon Feb 11 21:40:32 2002
+++ src/libcwd/include/libcw/class_debug.inl Tue Feb 12 19:55:26 2002
@@ -1,4 +1,4 @@
-// $Header: /cvsroot/l/li/libcw/src/libcwd/include/libcw/class_debug.inl,v 1.7 2002/02/12 05:40:32 libcw Exp $
+// $Header: /cvsroot/l/li/libcw/src/libcwd/include/libcw/class_debug.inl,v 1.8 2002/02/13 03:55:26 libcw Exp $
//
// Copyright (C) 2000 - 2001, by
//
@@ -178,19 +178,6 @@
if (LIBCWD_TSD_MEMBER(laf_stack).size() == 0)
LIBCWD_TSD_MEMBER(current_oss) = NULL;
#endif
-}
-
-/**
- * \brief Set output device.
- * \ingroup group_destination
- *
- * Assign a new \c ostream to this %debug object (default is <CODE>std::cerr</CODE>).
- */
-__inline__
-void
-debug_ct::set_ostream(std::ostream* os)
-{
- private_set_ostream(os);
}
/** \} */
Index: src/libcwd/include/libcw/private_lock_interface.h
diff -u /dev/null src/libcwd/include/libcw/private_lock_interface.h:1.1
--- /dev/null Tue Feb 12 19:55:36 2002
+++ src/libcwd/include/libcw/private_lock_interface.h Tue Feb 12 19:55:26 2002
@@ -0,0 +1,60 @@
+// $Header: /cvsroot/l/li/libcw/src/libcwd/include/libcw/private_lock_interface.h,v 1.1 2002/02/13 03:55:26 libcw Exp $
+//
+// Copyright (C) 2002, by
+//
+// Carlo Wood, Run on IRC <ca...@al...>
+// RSA-1024 0x624ACAD5 1997-01-26 Sign & Encrypt
+// Fingerprint16 = 32 EC A7 B6 AC DB 65 A6 F6 F6 55 DD 1C DC FF 61
+//
+// This file may be distributed under the terms of the Q Public License
+// version 1.0 as appearing in the file LICENSE.QPL included in the
+// packaging of this file.
+//
+
+/** \file private_lock_interface.h
+ * Do not include this header file directly, instead include "\ref preparation_step2 "debug.h"".
+ */
+
+#ifndef LIBCW_PRIVATE_LOCK_INTERFACE_H
+#define LIBCW_PRIVATE_LOCK_INTERFACE_H
+
+#ifdef LIBCWD_THREAD_SAFE
+namespace libcw {
+ namespace debug {
+ namespace _private_ {
+
+class lock_interface_base_ct {
+public:
+ virtual int trylock(void) = 0;
+ virtual void lock(void) = 0;
+ virtual void unlock(void) = 0;
+ virtual ~lock_interface_base_ct() { }
+};
+
+template<class T>
+ class lock_interface_tct : public lock_interface_base_ct {
+ private:
+ T* ptr;
+ virtual int trylock(void) { return ptr->trylock(); }
+ virtual void lock(void) { ptr->lock(); }
+ virtual void unlock(void) { ptr->unlock(); }
+ public:
+ lock_interface_tct(T* mutex) : ptr(mutex) { }
+ };
+
+class pthread_lock_interface_ct : public lock_interface_base_ct {
+ private:
+ pthread_mutex_t* ptr;
+ virtual int trylock(void) { return pthread_mutex_trylock(ptr); }
+ virtual void lock(void) { pthread_mutex_lock(ptr); }
+ virtual void unlock(void) { pthread_mutex_unlock(ptr); }
+ public:
+ pthread_lock_interface_ct(pthread_mutex_t* mutex) : ptr(mutex) { }
+};
+
+ } // namespace _private_
+ } // namespace debug
+} // namespace libcw
+#endif // LIBCWD_THREAD_SAFE
+#endif // LIBCW_PRIVATE_LOCK_INTERFACE_H
+
Index: src/libcwd/include/libcw/private_threading.h
diff -u src/libcwd/include/libcw/private_threading.h:1.22 src/libcwd/include/libcw/private_threading.h:1.23
--- src/libcwd/include/libcw/private_threading.h:1.22 Mon Feb 11 21:40:32 2002
+++ src/libcwd/include/libcw/private_threading.h Tue Feb 12 19:55:26 2002
@@ -1,4 +1,4 @@
-// $Header: /cvsroot/l/li/libcw/src/libcwd/include/libcw/private_threading.h,v 1.22 2002/02/12 05:40:32 libcw Exp $
+// $Header: /cvsroot/l/li/libcw/src/libcwd/include/libcw/private_threading.h,v 1.23 2002/02/13 03:55:26 libcw Exp $
//
// Copyright (C) 2001 - 2002, by
//
@@ -112,6 +112,7 @@
type_info_of_instance,
dlopen_map_instance,
write_max_len_instance,
+ set_ostream_instance,
debug_objects_instance, // rwlock
debug_channels_instance, // rwlock
// Values reserved for read/write locks.
Index: src/libcwd/include/libcw/set_ostream.inl
diff -u /dev/null src/libcwd/include/libcw/set_ostream.inl:1.1
--- /dev/null Tue Feb 12 19:55:36 2002
+++ src/libcwd/include/libcw/set_ostream.inl Tue Feb 12 19:55:26 2002
@@ -0,0 +1,75 @@
+// $Header: /cvsroot/l/li/libcw/src/libcwd/include/libcw/set_ostream.inl,v 1.1 2002/02/13 03:55:26 libcw Exp $
+//
+// Copyright (C) 2002, by
+//
+// Carlo Wood, Run on IRC <ca...@al...>
+// RSA-1024 0x624ACAD5 1997-01-26 Sign & Encrypt
+// Fingerprint16 = 32 EC A7 B6 AC DB 65 A6 F6 F6 55 DD 1C DC FF 61
+//
+// This file may be distributed under the terms of the Q Public License
+// version 1.0 as appearing in the file LICENSE.QPL included in the
+// packaging of this file.
+//
+
+#ifndef LIBCW_SET_OSTREAM_INL
+#define LIBCW_SET_OSTREAM_INL
+
+#ifndef LIBCW_PRIVATE_LOCK_INTERFACE_H
+#include <libcw/private_lock_interface.h>
+#endif
+#ifndef LIBCW_PRIVATE_THREADING_H
+#include <libcw/private_threading.h>
+#endif
+
+#ifdef LIBCWD_THREAD_SAFE
+namespace libcw {
+ namespace debug {
+
+/**
+ * \brief Set output device and provide external lock.
+ * \ingroup group_destination
+ *
+ * Assign a new \c ostream to this %debug object.
+ * The \c ostream will only be written to after obtaining the lock
+ * that is passed as second argument. Each \c ostream needs to have
+ * a unique lock. If the application also writes directly
+ * to the same \c ostream then use the same lock.
+ *
+ * <b>Example:</b>
+ *
+ * \code
+ * MyLock lock;
+ *
+ * // Uses MyLock::lock(), MyLock::trylock() and MyLock::unlock().
+ * Debug( libcw_do.set_ostream(&std::cerr, &lock) );
+ *
+ * lock.lock();
+ * std::cerr << "The application uses cerr too\n";
+ * lock.unlock();
+ * \endcode
+ */
+template<class T>
+ void debug_ct::set_ostream(std::ostream* os, T* mutex)
+ {
+ _private_::lock_interface_base_ct* new_mutex = new _private_::lock_interface_tct<T>(mutex);
+ LIBCWD_DEFER_CANCEL
+ _private_::mutex_tct<_private_::set_ostream_instance>::lock();
+ _private_::lock_interface_base_ct* old_mutex = M_mutex;
+ if (old_mutex)
+ old_mutex->lock(); // Make sure all other threads left this critical area.
+ M_mutex = new_mutex;
+ if (old_mutex)
+ {
+ old_mutex->unlock();
+ delete old_mutex;
+ }
+ private_set_ostream(os);
+ _private_::mutex_tct<_private_::set_ostream_instance>::unlock();
+ LIBCWD_RESTORE_CANCEL
+ }
+
+ } // namespace debug
+} // namespace libcw
+#endif // LIBCWD_THREAD_SAFE
+#endif // LIBCW_SET_OSTREAM_INL
+
Index: src/libcwd/testsuite/libcwd.nodebug/nodebug.cc
diff -u src/libcwd/testsuite/libcwd.nodebug/nodebug.cc:1.7 src/libcwd/testsuite/libcwd.nodebug/nodebug.cc:1.8
--- src/libcwd/testsuite/libcwd.nodebug/nodebug.cc:1.7 Wed Sep 19 16:34:50 2001
+++ src/libcwd/testsuite/libcwd.nodebug/nodebug.cc Tue Feb 12 19:55:26 2002
@@ -7,13 +7,13 @@
DoutFatal(dc::fatal, "Expected Failure.");
#endif
- Debug( make_all_allocations_invisible_except(NULL) );
-
Debug( libcw_do.on() );
Debug( dc::malloc.on() );
#ifdef DEBUGUSEBFD
Debug( dc::bfd.on() );
#endif
+
+ Debug( make_all_allocations_invisible_except(NULL) );
int* p = new int [100];
Index: src/libcwd/testsuite/libcwd.nodebug/nodebug.re
diff -u src/libcwd/testsuite/libcwd.nodebug/nodebug.re:1.10 src/libcwd/testsuite/libcwd.nodebug/nodebug.re:1.11
--- src/libcwd/testsuite/libcwd.nodebug/nodebug.re:1.10 Tue Jan 8 18:20:50 2002
+++ src/libcwd/testsuite/libcwd.nodebug/nodebug.re Tue Feb 12 19:55:26 2002
@@ -8,6 +8,10 @@
does not have a line number, perhaps the unit containing the function
`_*main' wasn't compiled with flag -(g|ggdb)\?
MALLOC : <continued> 0x[a-f0-9]+
-MALLOC : Allocated memory: 400 bytes in 1 blocks\.
+MALLOC : Allocated memory: (400|408) bytes in (1|2) blocks\.
new\[\] 0x[a-f0-9]+ (_*main|) *<unknown type>; \(sz = 400\)
+// input lines 2
+// output till ^MALLOC
+(malloc 0x[a-f0-9]+ *eh_globals\.cc:[0-9]* *<unknown type>; \(sz = 8\)
+)*
MALLOC : delete\[\] 0x[a-f0-9]+ (_*main|) *<unknown type>; \(sz = 400\)
Index: src/libcwd/testsuite/libcwd.tst/alloctag.cc
diff -u src/libcwd/testsuite/libcwd.tst/alloctag.cc:1.17 src/libcwd/testsuite/libcwd.tst/alloctag.cc:1.18
--- src/libcwd/testsuite/libcwd.tst/alloctag.cc:1.17 Sat Dec 29 20:17:51 2001
+++ src/libcwd/testsuite/libcwd.tst/alloctag.cc Tue Feb 12 19:55:26 2002
@@ -1,4 +1,4 @@
-// $Header: /cvsroot/l/li/libcw/src/libcwd/testsuite/libcwd.tst/alloctag.cc,v 1.17 2001/12/30 04:17:51 libcw Exp $
+// $Header: /cvsroot/l/li/libcw/src/libcwd/testsuite/libcwd.tst/alloctag.cc,v 1.18 2002/02/13 03:55:26 libcw Exp $
//
// Copyright (C) 2000 - 2001, by
//
@@ -90,5 +90,7 @@
free(cp2i);
free(rp);
free(rpi);
+
+ Debug( libcw_do.off() );
return 0;
}
Index: src/libcwd/testsuite/libcwd.tst/bfd.cc
diff -u src/libcwd/testsuite/libcwd.tst/bfd.cc:1.24 src/libcwd/testsuite/libcwd.tst/bfd.cc:1.25
--- src/libcwd/testsuite/libcwd.tst/bfd.cc:1.24 Sat Dec 29 20:17:51 2001
+++ src/libcwd/testsuite/libcwd.tst/bfd.cc Tue Feb 12 19:55:26 2002
@@ -1,4 +1,4 @@
-// $Header: /cvsroot/l/li/libcw/src/libcwd/testsuite/libcwd.tst/bfd.cc,v 1.24 2001/12/30 04:17:51 libcw Exp $
+// $Header: /cvsroot/l/li/libcw/src/libcwd/testsuite/libcwd.tst/bfd.cc,v 1.25 2002/02/13 03:55:26 libcw Exp $
//
// Copyright (C) 2000 - 2001, by
//
@@ -157,5 +157,6 @@
#endif
libcw_bfd_test();
+ Debug( libcw_do.off() );
return 0;
}
Index: src/libcwd/testsuite/libcwd.tst/dlopen.re
diff -u src/libcwd/testsuite/libcwd.tst/dlopen.re:1.11 src/libcwd/testsuite/libcwd.tst/dlopen.re:1.12
--- src/libcwd/testsuite/libcwd.tst/dlopen.re:1.11 Sat Feb 9 21:41:58 2002
+++ src/libcwd/testsuite/libcwd.tst/dlopen.re Tue Feb 12 19:55:26 2002
@@ -18,6 +18,6 @@
malloc 0x[0-9a-f]* module\.cc:19 void\*; \(sz = 310\) Allocated inside global_test_symbol
// input lines 2
// output till ^NOTICE
-(malloc 0x[0-9a-f]* *(dl-[a-z]*\.c|stl_alloc\.h|specific\.c|dlerror\.c):[0-9]* *<unknown type>; \(sz = [0-9]*\)
+(malloc 0x[0-9a-f]* *(dl-[a-z]*\.c|stl_alloc\.h|specific\.c|dlerror\.c|eh_globals\.cc):[0-9]* *<unknown type>; \(sz = [0-9]*\)
)*
NOTICE : Finished
Index: src/libcwd/testsuite/libcwd.tst/flush.cc
diff -u src/libcwd/testsuite/libcwd.tst/flush.cc:1.10 src/libcwd/testsuite/libcwd.tst/flush.cc:1.11
--- src/libcwd/testsuite/libcwd.tst/flush.cc:1.10 Sat Dec 29 20:17:51 2001
+++ src/libcwd/testsuite/libcwd.tst/flush.cc Tue Feb 12 19:55:26 2002
@@ -46,4 +46,6 @@
Dout( dc::continued, "part2... " );
generate_tables();
Dout( dc::finish, "done" );
+
+ Debug( libcw_do.off() );
}
Index: src/libcwd/testsuite/libcwd.tst/leak.cc
diff -u src/libcwd/testsuite/libcwd.tst/leak.cc:1.16 src/libcwd/testsuite/libcwd.tst/leak.cc:1.17
--- src/libcwd/testsuite/libcwd.tst/leak.cc:1.16 Sat Dec 29 20:17:51 2001
+++ src/libcwd/testsuite/libcwd.tst/leak.cc Tue Feb 12 19:55:26 2002
@@ -1,4 +1,4 @@
-// $Header: /cvsroot/l/li/libcw/src/libcwd/testsuite/libcwd.tst/leak.cc,v 1.16 2001/12/30 04:17:51 libcw Exp $
+// $Header: /cvsroot/l/li/libcw/src/libcwd/testsuite/libcwd.tst/leak.cc,v 1.17 2002/02/13 03:55:26 libcw Exp $
//
// Copyright (C) 2000 - 2001, by
//
@@ -160,5 +160,6 @@
free(ptr2);
free(ptr3);
+ Debug( libcw_do.off() );
return 0;
}
Index: src/libcwd/testsuite/libcwd.tst/marker.cc
diff -u src/libcwd/testsuite/libcwd.tst/marker.cc:1.15 src/libcwd/testsuite/libcwd.tst/marker.cc:1.16
--- src/libcwd/testsuite/libcwd.tst/marker.cc:1.15 Sat Dec 29 20:17:51 2001
+++ src/libcwd/testsuite/libcwd.tst/marker.cc Tue Feb 12 19:55:26 2002
@@ -1,4 +1,4 @@
-// $Header: /cvsroot/l/li/libcw/src/libcwd/testsuite/libcwd.tst/marker.cc,v 1.15 2001/12/30 04:17:51 libcw Exp $
+// $Header: /cvsroot/l/li/libcw/src/libcwd/testsuite/libcwd.tst/marker.cc,v 1.16 2002/02/13 03:55:26 libcw Exp $
//
// Copyright (C) 2000 - 2001, by
//
@@ -87,5 +87,6 @@
Dout(dc::notice, "Finished successfully.");
+ Debug( libcw_do.off() );
exit(0);
}
Index: src/libcwd/testsuite/libcwd.tst/test_delete.cc
diff -u src/libcwd/testsuite/libcwd.tst/test_delete.cc:1.11 src/libcwd/testsuite/libcwd.tst/test_delete.cc:1.12
--- src/libcwd/testsuite/libcwd.tst/test_delete.cc:1.11 Sat Dec 29 20:17:51 2001
+++ src/libcwd/testsuite/libcwd.tst/test_delete.cc Tue Feb 12 19:55:26 2002
@@ -1,4 +1,4 @@
-// $Header: /cvsroot/l/li/libcw/src/libcwd/testsuite/libcwd.tst/test_delete.cc,v 1.11 2001/12/30 04:17:51 libcw Exp $
+// $Header: /cvsroot/l/li/libcw/src/libcwd/testsuite/libcwd.tst/test_delete.cc,v 1.12 2002/02/13 03:55:26 libcw Exp $
//
// Copyright (C) 2000 - 2001, by
//
@@ -85,5 +85,6 @@
std::cout << "Finished successfully.\n";
#endif
+ Debug( libcw_do.off() );
exit(0);
}
Index: src/libcwd/threading.cc
diff -u src/libcwd/threading.cc:1.10 src/libcwd/threading.cc:1.11
--- src/libcwd/threading.cc:1.10 Mon Feb 11 21:40:32 2002
+++ src/libcwd/threading.cc Tue Feb 12 19:55:26 2002
@@ -1,4 +1,4 @@
-// $Header: /cvsroot/l/li/libcw/src/libcwd/threading.cc,v 1.10 2002/02/12 05:40:32 libcw Exp $
+// $Header: /cvsroot/l/li/libcw/src/libcwd/threading.cc,v 1.11 2002/02/13 03:55:26 libcw Exp $
//
// Copyright (C) 2001, by
//
@@ -33,6 +33,7 @@
mutex_tct<mutex_initialization_instance>::initialize();
rwlock_tct<object_files_instance>::initialize();
mutex_tct<dlopen_map_instance>::initialize();
+ mutex_tct<set_ostream_instance>::initialize();
#ifdef DEBUGMALLOC
mutex_tct<alloc_tag_desc_instance>::initialize();
mutex_tct<memblk_map_instance>::initialize();
----------------------- End of diff -----------------------
|