@@ -113,7 +113,7 @@ class Logcat {
113
113
114
114
static size_t PrintLogLine (const AndroidLogEntry &entry, FILE *out);
115
115
116
- void EnsureLogWatchDog ();
116
+ void StartLogWatchDog ();
117
117
118
118
JNIEnv *env_;
119
119
jobject thiz_;
@@ -243,9 +243,9 @@ void Logcat::ProcessBuffer(struct log_msg *buf) {
243
243
} else if (msg == " !!refresh_verbose!!" sv) {
244
244
RefreshFd (true );
245
245
} else if (msg == " !!start_watchdog!!" sv) {
246
+ if (!enable_watchdog) StartLogWatchDog ();
246
247
enable_watchdog = true ;
247
248
enable_watchdog.notify_one ();
248
- EnsureLogWatchDog ();
249
249
} else if (msg == " !!stop_watchdog!!" sv) {
250
250
enable_watchdog = false ;
251
251
enable_watchdog.notify_one ();
@@ -260,20 +260,21 @@ void Logcat::ProcessBuffer(struct log_msg *buf) {
260
260
}
261
261
}
262
262
263
- void Logcat::EnsureLogWatchDog () {
263
+ void Logcat::StartLogWatchDog () {
264
264
constexpr static auto kLogdSizeProp = " persist.logd.size" sv;
265
265
constexpr static auto kLogdTagProp = " persist.log.tag" sv;
266
266
constexpr static auto kLogdMainSizeProp = " persist.logd.size.main" sv;
267
267
constexpr static auto kLogdCrashSizeProp = " persist.logd.size.crash" sv;
268
268
constexpr static long kErr = -1 ;
269
269
std::thread watchdog ([this ] {
270
+ Log (" [LogWatchDog started]\n " );
270
271
while (true ) {
271
272
enable_watchdog.wait (false ); // Blocking current thread until enable_watchdog is true;
272
273
auto logd_size = GetByteProp (kLogdSizeProp );
273
274
auto logd_tag = GetStrProp (kLogdTagProp );
274
275
auto logd_main_size = GetByteProp (kLogdMainSizeProp );
275
276
auto logd_crash_size = GetByteProp (kLogdCrashSizeProp );
276
- Log (" [LogWatchDog started ] log.tag: " + logd_tag +
277
+ Log (" [LogWatchDog running ] log.tag: " + logd_tag +
277
278
" ; logd.[default, main, crash].size: [" + std::to_string (logd_size) + " ," +
278
279
std::to_string (logd_main_size) + " ," + std::to_string (logd_crash_size) + " ]\n " );
279
280
if (!logd_tag.empty () ||
0 commit comments