Author: carnold
Date: Mon Feb 18 12:46:29 2008
New Revision: 628865
URL: http://svn.apache.org/viewvc?rev=628865&view=rev
Log:
LOGCXX-220: Eliminate circular dependency in RFA
Modified:
logging/log4cxx/trunk/src/main/cpp/rollingfileappender.cpp
logging/log4cxx/trunk/src/main/include/log4cxx/rolling/rollingfileappenderskeleton.h
Modified: logging/log4cxx/trunk/src/main/cpp/rollingfileappender.cpp
URL:
http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/cpp/rollingfileappender.cpp?rev=628865&r1=628864&r2=628865&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/cpp/rollingfileappender.cpp (original)
+++ logging/log4cxx/trunk/src/main/cpp/rollingfileappender.cpp Mon Feb 18
12:46:29 2008
@@ -89,13 +89,13 @@
setFile(rollover1->getActiveFileName());
setAppend(rollover1->getAppend());
- lastRolloverAsyncAction = rollover1->getAsynchronous();
- if (lastRolloverAsyncAction != NULL) {
- //
- // TODO: compression not asynchronous
- //
- lastRolloverAsyncAction->execute(p);
+ //
+ // async action not yet implemented
+ //
+ ActionPtr asyncAction(rollover1->getAsynchronous());
+ if (asyncAction != NULL) {
+ asyncAction->execute(p);
}
}
@@ -141,21 +141,6 @@
{
synchronized sync(mutex);
- //
- // if a previous async task is still running
- //}
- if (lastRolloverAsyncAction != NULL) {
- //
- // block until complete
- //
- lastRolloverAsyncAction->close();
-
- //
- // or don't block and return to rollover later
- //
- //if (!lastRolloverAsyncAction.isComplete()) return false;
- }
-
try {
RolloverDescriptionPtr rollover1(rollingPolicy->rollover(getFile(),
p));
@@ -182,12 +167,12 @@
fileLength = 0;
}
- if (rollover1->getAsynchronous() != NULL) {
- lastRolloverAsyncAction = rollover1->getAsynchronous();
- //
- // TODO: compression not currently asynchronous
- //
- lastRolloverAsyncAction->execute(p);
+ //
+ // async action not yet implemented
+ //
+ ActionPtr asyncAction(rollover1->getAsynchronous());
+ if (asyncAction != NULL) {
+ asyncAction->execute(p);
}
setFile(
@@ -224,12 +209,12 @@
fileLength = 0;
}
- if (rollover1->getAsynchronous() != NULL) {
- lastRolloverAsyncAction = rollover1->getAsynchronous();
- //
- // TODO: compression not asynchronous
- //
- lastRolloverAsyncAction->execute(p);
+ //
+ // async action not yet implemented
+ //
+ ActionPtr asyncAction(rollover1->getAsynchronous());
+ if (asyncAction != NULL) {
+ asyncAction->execute(p);
}
}
@@ -307,13 +292,6 @@
* Close appender. Waits for any asynchronous file compression actions to be
completed.
*/
void RollingFileAppenderSkeleton::close() {
- {
- synchronized sync (mutex);
- if (lastRolloverAsyncAction != NULL) {
- lastRolloverAsyncAction->close();
- }
- }
-
FileAppender::close();
}
@@ -333,7 +311,7 @@
/**
* Rolling file appender to inform of stream writes.
*/
- RollingFileAppenderSkeletonPtr rfa;
+ RollingFileAppenderSkeleton* rfa;
public:
/**
@@ -351,6 +329,7 @@
*/
void close(Pool& p) {
os->close(p);
+ rfa = 0;
}
/**
@@ -365,7 +344,9 @@
*/
void write(ByteBuffer& buf, Pool& p) {
os->write(buf, p);
- rfa->incrementFileLength(buf.limit());
+ if (rfa != 0) {
+ rfa->incrementFileLength(buf.limit());
+ }
}
};
Modified:
logging/log4cxx/trunk/src/main/include/log4cxx/rolling/rollingfileappenderskeleton.h
URL:
http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/include/log4cxx/rolling/rollingfileappenderskeleton.h?rev=628865&r1=628864&r2=628865&view=diff
==============================================================================
---
logging/log4cxx/trunk/src/main/include/log4cxx/rolling/rollingfileappenderskeleton.h
(original)
+++
logging/log4cxx/trunk/src/main/include/log4cxx/rolling/rollingfileappenderskeleton.h
Mon Feb 18 12:46:29 2008
@@ -57,11 +57,6 @@
*/
size_t fileLength;
- /**
- * Asynchronous action (like compression) from previous rollover.
- */
- ActionPtr lastRolloverAsyncAction;
-
public:
/**
* The default constructor simply calls its [EMAIL PROTECTED]