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;
|
||||
}
|
||||
|
||||
if (static_cast<int>(file_length_ >> 20) >= MaxLogSize()) {
|
||||
if (static_cast<int>(file_length_ >> 20) >= MaxLogSize() ||
|
||||
PidHasChanged()) {
|
||||
if (file_ != NULL) fclose(file_);
|
||||
file_ = NULL;
|
||||
file_length_ = bytes_since_flush_ = 0;
|
||||
|
||||
@ -221,6 +221,15 @@ int32 GetMainThreadPid() {
|
||||
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() {
|
||||
// On Linux and FreeBSD, we try to use gettid().
|
||||
#if defined OS_LINUX || defined OS_FREEBSD || defined OS_MACOSX
|
||||
|
||||
@ -159,6 +159,7 @@ typedef double WallTime;
|
||||
WallTime WallTime_Now();
|
||||
|
||||
int32 GetMainThreadPid();
|
||||
bool PidHasChanged();
|
||||
|
||||
pid_t GetTID();
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user