< 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 >