Author: carnold
Date: Tue May 6 13:44:28 2008
New Revision: 653917
URL:
http://svn.apache.org/viewvc?rev=653917&view=rev
Log:
LOGCXX-265: Anachronism warnings
Modified:
logging/log4cxx/trunk/src/main/cpp/aprinitializer.cpp
logging/log4cxx/trunk/src/main/cpp/threadcxx.cpp
logging/log4cxx/trunk/src/main/include/log4cxx/helpers/threa
d.h
Modified:
logging/log4cxx/trunk/src/main/cpp/aprinitializer.cpp
URL: http://svn.apache.org/viewvc/logging/
log4cxx/trunk/src/main/cpp/aprinitializer.cpp?rev=653917&
;r1=653916&r2=653917&view=diff
============================================================
==================
--- logging/log4cxx/trunk/src/main/cpp/aprinitializer.cpp
(original)
+++ logging/log4cxx/trunk/src/main/cpp/aprinitializer.cpp
Tue May 6 13:44:28 2008
 -31,8
+31,10 
bool APRInitializer::isDestructed = false;
-static void tlsDestruct(void* ptr) {
- delete ((ThreadSpecificData*) ptr);
+namespace {
+ void tlsDestruct(void* ptr) {
+ delete ((ThreadSpecificData*) ptr);
+ }
}
APRInitializer::APRInitializer() {
Modified: logging/log4cxx/trunk/src/main/cpp/threadcxx.cpp
URL: http://svn.apache.org/viewvc/logging/log4c
xx/trunk/src/main/cpp/threadcxx.cpp?rev=653917&r1=653916
&r2=653917&view=diff
============================================================
==================
--- logging/log4cxx/trunk/src/main/cpp/threadcxx.cpp
(original)
+++ logging/log4cxx/trunk/src/main/cpp/threadcxx.cpp Tue May
6 13:44:28 2008
 -26,34
+26,123 
using namespace log4cxx::helpers;
using namespace log4cxx;
-Thread::Thread() : thread(NULL), alive(0),
interruptedStatus(0)
-
-Thread::~Thread() {
- join();
-}
+#if APR_HAS_THREADS
+namespace {
+ /**
+ * This class is used to
encapsulate the parameters to
+ * Thread::run when they are
passed to Thread::launcher.
+ *
+ */
+ class LaunchPackage {
+ public:
+ /**
+ * Placement new to create
LaunchPackage in specified pool.
+ * LaunchPackage needs to be
dynamically allocated since
+ * since a stack allocated
instance may go out of scope
+ * before thread is launched.
+ */
+ static void* operator
new(size_t sz, Pool& p) {
+ return p.palloc(sz);
+ }
+ /**
+ * operator delete would be
called if exception during construction.
+ */
+ static void operator
delete(void*, Pool& p) {
+ }
+ /**
+ * Create new instance.
+ */
+ LaunchPackage(Thread* t, Runnable r, void* d) :
thread(t), runnable(r), data(d) {
+ }
+ /**
+ * Gets thread parameter.
+ * return thread.
+ */
+ Thread* getThread() const {
+ return thread;
+ }
+
+ /**
+ * Gets runnable parameter.
+ * return runnable.
+ */
+ Runnable getRunnable() const {
+ return runnable;
+ }
+ /**
+ * gets data parameter.
+ * return thread.
+ */
+ void* getData() const {
+ return data;
+ }
+ private:
+ LaunchPackage(const
LaunchPackage&);
+ LaunchPackage&
operator=(const LaunchPackage&);
+ Thread* thread;
+ Runnable runnable;
+ void* data;
+ };
+
+ /**
+ * This object atomically sets the
specified memory location
+ * to non-zero on construction and
to zero on destruction.
+ * Used to maintain Thread.alive.
+ */
+ class LaunchStatus {
+ public:
+ /*
+ * Construct new instance.
+ * param p address of memory
to set to non-zero on construction, zero on destruction.
+ */
+ LaunchStatus(volatile unsigned int* p) : alive(p) {
+ apr_atomic_set32(alive, 0xFFFFFFFF);
+ }
+ /**
+ * Destructor.
+ */
+ ~LaunchStatus() {
+ apr_atomic_set32(alive, 0);
+ }
+
+ private:
+ LaunchStatus(const
LaunchStatus&);
+ LaunchStatus&
operator=(const LaunchStatus&);
+ volatile unsigned int* alive;
+ };
+
+ /**
+ * Get a key to the thread local
storage used to hold the reference to
+ * the corresponding Thread
object.
+ */
+ ThreadLocal& getThreadLocal() {
+ static ThreadLocal tls;
+ return tls;
+ }
+
+}
+
+void* LOG4CXX_THREAD_FUNC
ThreadLaunch::launcher(apr_thread_t* thread, void* data) {
+ LaunchPackage* package = (LaunchPackage*) data;
+ ThreadLocal& tls = getThreadLocal();
+ tls.set(package->getThread());
+ LaunchStatus
alive(&package->getThread()->alive);
+ void* retval = (package->getRunnable())(thread,
package->getData());
+ apr_thread_exit(thread, 0);
+ return retval;
+}
+#endif
-Thread::LaunchPackage::LaunchPackage(Thread* t, Runnable r,
void* d) : thread(t), runnable(r), data(d)
-Thread* Thread::LaunchPackage::getThread() const {
- return thread;
-}
-Runnable Thread::LaunchPackage::getRunnable() const {
- return runnable;
+Thread::Thread() : thread(NULL), alive(0),
interruptedStatus(0) {
}
-void* Thread::LaunchPackage::getData() const {
- return data;
+Thread::~Thread() {
+ join();
}
-void* Thread::LaunchPackage::operator new(size_t sz,
Pool& p) {
- return p.palloc(sz);
-}
-void Thread::LaunchPackage::operator delete(void* mem,
Pool& p)
void Thread::run(Runnable start, void* data) {
#if APR_HAS_THREADS
 -73,7
+162,7 
// create LaunchPackage on the thread's memory
pool
LaunchPackage* package = new(p) LaunchPackage(this,
start, data);
stat = apr_thread_create(&thread, attrs,
- launcher, package, p.getAPRPool());
+ ThreadLaunch::launcher, package,
p.getAPRPool());
if (stat != APR_SUCCESS) {
throw ThreadException(stat);
}
 -82,26
+171,7 
#endif
}
-
-Thread::LaunchStatus::LaunchStatus(volatile unsigned int*
p) : alive(p) {
- apr_atomic_set32(alive, 0xFFFFFFFF);
-}
-
-Thread::LaunchStatus::~LaunchStatus() {
- apr_atomic_set32(alive, 0);
-}
-
-#if APR_HAS_THREADS
-void* LOG4CXX_THREAD_FUNC Thread::launcher(apr_thread_t*
thread, void* data) {
- LaunchPackage* package = (LaunchPackage*) data;
- ThreadLocal& tls = getThreadLocal();
- tls.set(package->getThread());
- LaunchStatus
alive(&package->getThread()->alive);
- void* retval = (package->getRunnable())(thread,
package->getData());
- apr_thread_exit(thread, 0);
- return retval;
-}
-#endif
+
void Thread::join() {
 -117,10
+187,6 
#endif
}
-ThreadLocal& Thread::getThreadLocal() {
- static ThreadLocal tls;
- return tls;
-}
void Thread::currentThreadInterrupt() {
#if APR_HAS_THREADS
Modified:
logging/log4cxx/trunk/src/main/include/log4cxx/helpers/threa
d.h
URL: http://svn.apache.org/viewv
c/logging/log4cxx/trunk/src/main/include/log4cxx/helpers/thr
ead.h?rev=653917&r1=653916&r2=653917&view=diff
a>
============================================================
==================
---
logging/log4cxx/trunk/src/main/include/log4cxx/helpers/threa
d.h (original)
+++
logging/log4cxx/trunk/src/main/include/log4cxx/helpers/threa
d.h Tue May 6 13:44:28 2008
 -41,7
+41,11 
class Pool;
class ThreadLocal;
- typedef void* (LOG4CXX_THREAD_FUNC
*Runnable)(apr_thread_t* thread, void* data);
+ typedef void* (LOG4CXX_THREAD_FUNC
*Runnable)(apr_thread_t* thread, void* data);
+ namespace ThreadLaunch {
+ extern "C" void* LOG4CXX_THREAD_FUNC
launcher(apr_thread_t* thread, void* data);
+ }
+
/**
* This class implements an approximation
of java.util.Thread.
*/
 -98,85
+102,7 
volatile unsigned int
interruptedStatus;
Thread(const Thread&);
Thread& operator=(const
Thread&);
-
- /**
- * This class is used to
encapsulate the parameters to
- * Thread::run when they are
passed to Thread::launcher.
- *
- */
- class LaunchPackage {
- public:
- /**
- * Placement new to create
LaunchPackage in specified pool.
- * LaunchPackage needs to be
dynamically allocated since
- * since a stack allocated
instance may go out of scope
- * before thread is launched.
- */
- static void* operator
new(size_t, Pool& p);
- /**
- * operator delete would be
called if exception during construction.
- */
- static void operator
delete(void*, Pool& p);
- /**
- * Create new instance.
- */
- LaunchPackage(Thread* thread,
Runnable runnable, void* data);
- /**
- * Gets thread parameter.
- * return thread.
- */
- Thread* getThread() const;
- /**
- * Gets runnable parameter.
- * return runnable.
- */
- Runnable getRunnable() const;
- /**
- * gets data parameter.
- * return thread.
- */
- void* getData() const;
- private:
- LaunchPackage(const
LaunchPackage&);
- LaunchPackage&
operator=(const LaunchPackage&);
- Thread* thread;
- Runnable runnable;
- void* data;
- };
-
- /**
- * This object atomically sets the
specified memory location
- * to non-zero on construction and
to zero on destruction.
- * Used to maintain Thread.alive.
- */
- class LaunchStatus {
- public:
- /*
- * Construct new instance.
- * param p address of memory
to set to non-zero on construction, zero on destruction.
- */
- LaunchStatus(volatile unsigned
int* p);
- /**
- * Destructor.
- */
- ~LaunchStatus();
- private:
- LaunchStatus(const
LaunchStatus&);
- LaunchStatus&
operator=(const LaunchStatus&);
- volatile unsigned int* alive;
- };
-
- /**
- * This method runs on the created
thread and sets up thread-local storage
- * used to keep the reference to
the corresponding Thread object and
- * is responsible for maintaining
Thread.alive.
- */
- static void* LOG4CXX_THREAD_FUNC
launcher(apr_thread_t* thread, void* data);
- /**
- * Get a key to the thread local
storage used to hold the reference to
- * the corresponding Thread
object.
- */
- static ThreadLocal&
getThreadLocal();
+ friend void* LOG4CXX_THREAD_FUNC
ThreadLaunch::launcher(apr_thread_t* thread, void* data);
};
} // namespace helpers
} // namespace log4cxx
|