< prev index next >
src/share/vm/utilities/vmError.hpp
Print this page
rev 12487 : 8166944: Hanging Error Reporting steps may lead to torn error logs.
Reviewed-by: cjplummer, dholmes
Summary: Interupt error reporting if reporting steps hang to enable subsequent reporting steps to run.
*** 1,7 ****
/*
! * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
--- 1,7 ----
/*
! * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*** 102,111 ****
--- 102,115 ----
static void report_and_die(const char* message, const char* detail_fmt, ...) ATTRIBUTE_PRINTF(2, 3);
static fdStream out;
static fdStream log; // error log used by VMError::report_and_die()
+ // Platform dependend helper functions used for timeout handling.
+ static void reporting_started();
+ static void interrupt_reporting_thread();
+
public:
// return a string to describe the error
static char* error_string(char* buf, int buflen);
*** 145,152 ****
--- 149,161 ----
// check to see if fatal error reporting is in progress
static bool fatal_error_in_progress() { return first_error_tid != -1; }
static intptr_t get_first_error_tid() { return first_error_tid; }
+
+ // Called by WatcherThread to check if the currently running error reporting did timeout.
+ // Returns true if reporting did hit the global ErrorLogTimeout.
+ static bool check_timeout();
+
};
#endif // SHARE_VM_UTILITIES_VMERROR_HPP
< prev index next >