Create a new log files after pid has changed
http://code.google.com/p/google-glog/issues/detail?id=51 http://code.google.com/p/google-glog/issues/detail?id=74 http://code.google.com/p/google-glog/issues/detail?id=82 git-svn-id: https://google-glog.googlecode.com/svn/trunk@94 eb4d4688-79bd-11dd-afb4-1d65580434c0
This commit is contained in:
parent
204ef03af8
commit
54421697f4
@ -745,7 +745,8 @@ void LogFileObject::Write(bool force_flush,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (static_cast<int>(file_length_ >> 20) >= MaxLogSize()) {
|
if (static_cast<int>(file_length_ >> 20) >= MaxLogSize() ||
|
||||||
|
PidHasChanged()) {
|
||||||
if (file_ != NULL) fclose(file_);
|
if (file_ != NULL) fclose(file_);
|
||||||
file_ = NULL;
|
file_ = NULL;
|
||||||
file_length_ = bytes_since_flush_ = 0;
|
file_length_ = bytes_since_flush_ = 0;
|
||||||
|
|||||||
@ -221,6 +221,15 @@ int32 GetMainThreadPid() {
|
|||||||
return g_main_thread_pid;
|
return g_main_thread_pid;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool PidHasChanged() {
|
||||||
|
int32 pid = getpid();
|
||||||
|
if (g_main_thread_pid == pid) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
g_main_thread_pid = pid;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
pid_t GetTID() {
|
pid_t GetTID() {
|
||||||
// On Linux and FreeBSD, we try to use gettid().
|
// On Linux and FreeBSD, we try to use gettid().
|
||||||
#if defined OS_LINUX || defined OS_FREEBSD || defined OS_MACOSX
|
#if defined OS_LINUX || defined OS_FREEBSD || defined OS_MACOSX
|
||||||
|
|||||||
@ -159,6 +159,7 @@ typedef double WallTime;
|
|||||||
WallTime WallTime_Now();
|
WallTime WallTime_Now();
|
||||||
|
|
||||||
int32 GetMainThreadPid();
|
int32 GetMainThreadPid();
|
||||||
|
bool PidHasChanged();
|
||||||
|
|
||||||
pid_t GetTID();
|
pid_t GetTID();
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user