Author: labath Date: Tue Dec 6 05:24:51 2016 New Revision: 288797 URL: http://llvm.org/viewvc/llvm-project?rev=288797&view=rev Log: Use Timeout<> in EvaluateExpressionOptions class
Modified: lldb/trunk/include/lldb/Target/Target.h lldb/trunk/source/API/SBExpressionOptions.cpp lldb/trunk/source/Commands/CommandObjectExpression.cpp lldb/trunk/source/Commands/CommandObjectWatchpoint.cpp lldb/trunk/source/Expression/REPL.cpp lldb/trunk/source/Interpreter/CommandInterpreter.cpp lldb/trunk/source/Plugins/InstrumentationRuntime/AddressSanitizer/AddressSanitizerRuntime.cpp lldb/trunk/source/Plugins/InstrumentationRuntime/ThreadSanitizer/ThreadSanitizerRuntime.cpp lldb/trunk/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.cpp lldb/trunk/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp lldb/trunk/source/Plugins/MemoryHistory/asan/MemoryHistoryASan.cpp lldb/trunk/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp lldb/trunk/source/Plugins/Process/Utility/InferiorCallPOSIX.cpp lldb/trunk/source/Plugins/SystemRuntime/MacOSX/AppleGetItemInfoHandler.cpp lldb/trunk/source/Plugins/SystemRuntime/MacOSX/AppleGetPendingItemsHandler.cpp lldb/trunk/source/Plugins/SystemRuntime/MacOSX/AppleGetQueuesHandler.cpp lldb/trunk/source/Plugins/SystemRuntime/MacOSX/AppleGetThreadItemInfoHandler.cpp lldb/trunk/source/Target/Process.cpp lldb/trunk/source/Target/Target.cpp Modified: lldb/trunk/include/lldb/Target/Target.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Target/Target.h?rev=288797&r1=288796&r2=288797&view=diff ============================================================================== --- lldb/trunk/include/lldb/Target/Target.h (original) +++ lldb/trunk/include/lldb/Target/Target.h Tue Dec 6 05:24:51 2016 @@ -33,6 +33,7 @@ #include "lldb/Target/PathMappingList.h" #include "lldb/Target/ProcessLaunchInfo.h" #include "lldb/Target/SectionLoadHistory.h" +#include "lldb/Utility/Timeout.h" #include "lldb/lldb-public.h" namespace lldb_private { @@ -224,23 +225,11 @@ private: class EvaluateExpressionOptions { public: - static const uint32_t default_timeout = 500000; - static const ExecutionPolicy default_execution_policy = + static constexpr std::chrono::milliseconds default_timeout{500}; + static constexpr ExecutionPolicy default_execution_policy = eExecutionPolicyOnlyWhenNeeded; - EvaluateExpressionOptions() - : m_execution_policy(default_execution_policy), - m_language(lldb::eLanguageTypeUnknown), - m_prefix(), // A prefix specific to this expression that is added after - // the prefix from the settings (if any) - m_coerce_to_id(false), m_unwind_on_error(true), - m_ignore_breakpoints(false), m_keep_in_memory(false), - m_try_others(true), m_stop_others(true), m_debug(false), - m_trap_exceptions(true), m_generate_debug_info(false), - m_result_is_internal(false), m_auto_apply_fixits(true), - m_use_dynamic(lldb::eNoDynamicValues), m_timeout_usec(default_timeout), - m_one_thread_timeout_usec(0), m_cancel_callback(nullptr), - m_cancel_callback_baton(nullptr) {} + EvaluateExpressionOptions() = default; ExecutionPolicy GetExecutionPolicy() const { return m_execution_policy; } @@ -288,14 +277,16 @@ public: m_use_dynamic = dynamic; } - uint32_t GetTimeoutUsec() const { return m_timeout_usec; } + const Timeout<std::micro> &GetTimeout() const { return m_timeout; } - void SetTimeoutUsec(uint32_t timeout = 0) { m_timeout_usec = timeout; } + void SetTimeout(const Timeout<std::micro> &timeout) { m_timeout = timeout; } - uint32_t GetOneThreadTimeoutUsec() const { return m_one_thread_timeout_usec; } + const Timeout<std::micro> &GetOneThreadTimeout() const { + return m_one_thread_timeout; + } - void SetOneThreadTimeoutUsec(uint32_t timeout = 0) { - m_one_thread_timeout_usec = timeout; + void SetOneThreadTimeout(const Timeout<std::micro> &timeout) { + m_one_thread_timeout = timeout; } bool GetTryAllThreads() const { return m_try_others; } @@ -369,27 +360,27 @@ public: bool GetAutoApplyFixIts() const { return m_auto_apply_fixits; } private: - ExecutionPolicy m_execution_policy; - lldb::LanguageType m_language; + ExecutionPolicy m_execution_policy = default_execution_policy; + lldb::LanguageType m_language = lldb::eLanguageTypeUnknown; std::string m_prefix; - bool m_coerce_to_id; - bool m_unwind_on_error; - bool m_ignore_breakpoints; - bool m_keep_in_memory; - bool m_try_others; - bool m_stop_others; - bool m_debug; - bool m_trap_exceptions; - bool m_repl; - bool m_generate_debug_info; - bool m_ansi_color_errors; - bool m_result_is_internal; - bool m_auto_apply_fixits; - lldb::DynamicValueType m_use_dynamic; - uint32_t m_timeout_usec; - uint32_t m_one_thread_timeout_usec; - lldb::ExpressionCancelCallback m_cancel_callback; - void *m_cancel_callback_baton; + bool m_coerce_to_id = false; + bool m_unwind_on_error = true; + bool m_ignore_breakpoints = false; + bool m_keep_in_memory = false; + bool m_try_others = true; + bool m_stop_others = true; + bool m_debug = false; + bool m_trap_exceptions = true; + bool m_repl = false; + bool m_generate_debug_info = false; + bool m_ansi_color_errors = false; + bool m_result_is_internal = false; + bool m_auto_apply_fixits = true; + lldb::DynamicValueType m_use_dynamic = lldb::eNoDynamicValues; + Timeout<std::micro> m_timeout = default_timeout; + Timeout<std::micro> m_one_thread_timeout = llvm::None; + lldb::ExpressionCancelCallback m_cancel_callback = nullptr; + void *m_cancel_callback_baton = nullptr; // If m_pound_line_file is not empty and m_pound_line_line is non-zero, // use #line %u "%s" before the expression content to remap where the source // originates Modified: lldb/trunk/source/API/SBExpressionOptions.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/API/SBExpressionOptions.cpp?rev=288797&r1=288796&r2=288797&view=diff ============================================================================== --- lldb/trunk/source/API/SBExpressionOptions.cpp (original) +++ lldb/trunk/source/API/SBExpressionOptions.cpp Tue Dec 6 05:24:51 2016 @@ -67,19 +67,22 @@ void SBExpressionOptions::SetFetchDynami } uint32_t SBExpressionOptions::GetTimeoutInMicroSeconds() const { - return m_opaque_ap->GetTimeoutUsec(); + return m_opaque_ap->GetTimeout() ? m_opaque_ap->GetTimeout()->count() : 0; } void SBExpressionOptions::SetTimeoutInMicroSeconds(uint32_t timeout) { - m_opaque_ap->SetTimeoutUsec(timeout); + m_opaque_ap->SetTimeout(timeout == 0 ? Timeout<std::micro>(llvm::None) + : std::chrono::microseconds(timeout)); } uint32_t SBExpressionOptions::GetOneThreadTimeoutInMicroSeconds() const { - return m_opaque_ap->GetOneThreadTimeoutUsec(); + return m_opaque_ap->GetOneThreadTimeout() ? m_opaque_ap->GetOneThreadTimeout()->count() : 0; } void SBExpressionOptions::SetOneThreadTimeoutInMicroSeconds(uint32_t timeout) { - m_opaque_ap->SetOneThreadTimeoutUsec(timeout); + m_opaque_ap->SetOneThreadTimeout(timeout == 0 + ? Timeout<std::micro>(llvm::None) + : std::chrono::microseconds(timeout)); } bool SBExpressionOptions::GetTryAllThreads() const { Modified: lldb/trunk/source/Commands/CommandObjectExpression.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Commands/CommandObjectExpression.cpp?rev=288797&r1=288796&r2=288797&view=diff ============================================================================== --- lldb/trunk/source/Commands/CommandObjectExpression.cpp (original) +++ lldb/trunk/source/Commands/CommandObjectExpression.cpp Tue Dec 6 05:24:51 2016 @@ -358,9 +358,9 @@ bool CommandObjectExpression::EvaluateEx options.SetGenerateDebugInfo(true); if (m_command_options.timeout > 0) - options.SetTimeoutUsec(m_command_options.timeout); + options.SetTimeout(std::chrono::microseconds(m_command_options.timeout)); else - options.SetTimeoutUsec(0); + options.SetTimeout(llvm::None); ExpressionResults success = target->EvaluateExpression( expr, frame, result_valobj_sp, options, &m_fixed_expression); Modified: lldb/trunk/source/Commands/CommandObjectWatchpoint.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Commands/CommandObjectWatchpoint.cpp?rev=288797&r1=288796&r2=288797&view=diff ============================================================================== --- lldb/trunk/source/Commands/CommandObjectWatchpoint.cpp (original) +++ lldb/trunk/source/Commands/CommandObjectWatchpoint.cpp Tue Dec 6 05:24:51 2016 @@ -1100,7 +1100,7 @@ protected: options.SetUnwindOnError(true); options.SetKeepInMemory(false); options.SetTryAllThreads(true); - options.SetTimeoutUsec(0); + options.SetTimeout(llvm::None); ExpressionResults expr_result = target->EvaluateExpression(expr, frame, valobj_sp, options); Modified: lldb/trunk/source/Expression/REPL.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Expression/REPL.cpp?rev=288797&r1=288796&r2=288797&view=diff ============================================================================== --- lldb/trunk/source/Expression/REPL.cpp (original) +++ lldb/trunk/source/Expression/REPL.cpp Tue Dec 6 05:24:51 2016 @@ -296,9 +296,9 @@ void REPL::IOHandlerInputComplete(IOHand expr_options.SetPoundLine(m_repl_source_path.c_str(), m_code.GetSize() + 1); if (m_command_options.timeout > 0) - expr_options.SetTimeoutUsec(m_command_options.timeout); + expr_options.SetTimeout(std::chrono::microseconds(m_command_options.timeout)); else - expr_options.SetTimeoutUsec(0); + expr_options.SetTimeout(llvm::None); expr_options.SetLanguage(GetLanguage()); Modified: lldb/trunk/source/Interpreter/CommandInterpreter.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Interpreter/CommandInterpreter.cpp?rev=288797&r1=288796&r2=288797&view=diff ============================================================================== --- lldb/trunk/source/Interpreter/CommandInterpreter.cpp (original) +++ lldb/trunk/source/Interpreter/CommandInterpreter.cpp Tue Dec 6 05:24:51 2016 @@ -1418,7 +1418,7 @@ Error CommandInterpreter::PreprocessComm options.SetIgnoreBreakpoints(true); options.SetKeepInMemory(false); options.SetTryAllThreads(true); - options.SetTimeoutUsec(0); + options.SetTimeout(llvm::None); ExpressionResults expr_result = target->EvaluateExpression( expr_str.c_str(), exe_ctx.GetFramePtr(), expr_result_valobj_sp, Modified: lldb/trunk/source/Plugins/InstrumentationRuntime/AddressSanitizer/AddressSanitizerRuntime.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/InstrumentationRuntime/AddressSanitizer/AddressSanitizerRuntime.cpp?rev=288797&r1=288796&r2=288797&view=diff ============================================================================== --- lldb/trunk/source/Plugins/InstrumentationRuntime/AddressSanitizer/AddressSanitizerRuntime.cpp (original) +++ lldb/trunk/source/Plugins/InstrumentationRuntime/AddressSanitizer/AddressSanitizerRuntime.cpp Tue Dec 6 05:24:51 2016 @@ -72,7 +72,7 @@ bool AddressSanitizerRuntime::CheckIfRun return symbol != nullptr; } -#define RETRIEVE_REPORT_DATA_FUNCTION_TIMEOUT_USEC 2 * 1000 * 1000 +static constexpr std::chrono::seconds g_retrieve_report_data_function_timeout(2); const char *address_sanitizer_retrieve_report_data_prefix = R"( extern "C" { @@ -127,7 +127,7 @@ StructuredData::ObjectSP AddressSanitize options.SetTryAllThreads(true); options.SetStopOthers(true); options.SetIgnoreBreakpoints(true); - options.SetTimeoutUsec(RETRIEVE_REPORT_DATA_FUNCTION_TIMEOUT_USEC); + options.SetTimeout(g_retrieve_report_data_function_timeout); options.SetPrefix(address_sanitizer_retrieve_report_data_prefix); options.SetAutoApplyFixIts(false); options.SetLanguage(eLanguageTypeObjC_plus_plus); Modified: lldb/trunk/source/Plugins/InstrumentationRuntime/ThreadSanitizer/ThreadSanitizerRuntime.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/InstrumentationRuntime/ThreadSanitizer/ThreadSanitizerRuntime.cpp?rev=288797&r1=288796&r2=288797&view=diff ============================================================================== --- lldb/trunk/source/Plugins/InstrumentationRuntime/ThreadSanitizer/ThreadSanitizerRuntime.cpp (original) +++ lldb/trunk/source/Plugins/InstrumentationRuntime/ThreadSanitizer/ThreadSanitizerRuntime.cpp Tue Dec 6 05:24:51 2016 @@ -59,7 +59,7 @@ lldb::InstrumentationRuntimeType ThreadS ThreadSanitizerRuntime::~ThreadSanitizerRuntime() { Deactivate(); } -#define RETRIEVE_REPORT_DATA_FUNCTION_TIMEOUT_USEC 2 * 1000 * 1000 +static constexpr std::chrono::seconds g_retrieve_data_function_timeout(2); const char *thread_sanitizer_retrieve_report_data_prefix = R"( extern "C" @@ -308,7 +308,7 @@ ThreadSanitizerRuntime::RetrieveReportDa options.SetTryAllThreads(true); options.SetStopOthers(true); options.SetIgnoreBreakpoints(true); - options.SetTimeoutUsec(RETRIEVE_REPORT_DATA_FUNCTION_TIMEOUT_USEC); + options.SetTimeout(g_retrieve_data_function_timeout); options.SetPrefix(thread_sanitizer_retrieve_report_data_prefix); options.SetAutoApplyFixIts(false); options.SetLanguage(eLanguageTypeObjC_plus_plus); Modified: lldb/trunk/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.cpp?rev=288797&r1=288796&r2=288797&view=diff ============================================================================== --- lldb/trunk/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.cpp (original) +++ lldb/trunk/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.cpp Tue Dec 6 05:24:51 2016 @@ -40,7 +40,7 @@ using namespace lldb; using namespace lldb_private; -#define PO_FUNCTION_TIMEOUT_USEC 15 * 1000 * 1000 +static constexpr std::chrono::seconds g_po_function_timeout(15); AppleObjCRuntime::~AppleObjCRuntime() {} @@ -169,7 +169,7 @@ bool AppleObjCRuntime::GetObjectDescript options.SetTryAllThreads(true); options.SetStopOthers(true); options.SetIgnoreBreakpoints(true); - options.SetTimeoutUsec(PO_FUNCTION_TIMEOUT_USEC); + options.SetTimeout(g_po_function_timeout); ExpressionResults results = m_print_object_caller_up->ExecuteFunction( exe_ctx, &wrapper_struct_addr, options, diagnostics, ret); Modified: lldb/trunk/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp?rev=288797&r1=288796&r2=288797&view=diff ============================================================================== --- lldb/trunk/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp (original) +++ lldb/trunk/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp Tue Dec 6 05:24:51 2016 @@ -66,7 +66,7 @@ using namespace lldb; using namespace lldb_private; // 2 second timeout when running utility functions -#define UTILITY_FUNCTION_TIMEOUT_USEC 2 * 1000 * 1000 +static constexpr std::chrono::seconds g_utility_function_timeout(2); static const char *g_get_dynamic_class_info_name = "__lldb_apple_objc_v2_get_dynamic_class_info"; @@ -1411,7 +1411,7 @@ AppleObjCRuntimeV2::UpdateISAToDescripto options.SetTryAllThreads(false); options.SetStopOthers(true); options.SetIgnoreBreakpoints(true); - options.SetTimeoutUsec(UTILITY_FUNCTION_TIMEOUT_USEC); + options.SetTimeout(g_utility_function_timeout); Value return_value; return_value.SetValueType(Value::eValueTypeScalar); @@ -1656,7 +1656,7 @@ AppleObjCRuntimeV2::UpdateISAToDescripto options.SetTryAllThreads(false); options.SetStopOthers(true); options.SetIgnoreBreakpoints(true); - options.SetTimeoutUsec(UTILITY_FUNCTION_TIMEOUT_USEC); + options.SetTimeout(g_utility_function_timeout); Value return_value; return_value.SetValueType(Value::eValueTypeScalar); Modified: lldb/trunk/source/Plugins/MemoryHistory/asan/MemoryHistoryASan.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/MemoryHistory/asan/MemoryHistoryASan.cpp?rev=288797&r1=288796&r2=288797&view=diff ============================================================================== --- lldb/trunk/source/Plugins/MemoryHistory/asan/MemoryHistoryASan.cpp (original) +++ lldb/trunk/source/Plugins/MemoryHistory/asan/MemoryHistoryASan.cpp Tue Dec 6 05:24:51 2016 @@ -149,7 +149,7 @@ static void CreateHistoryThreadFromValue result.push_back(new_thread_sp); } -#define GET_STACK_FUNCTION_TIMEOUT_USEC 2 * 1000 * 1000 +static constexpr std::chrono::seconds g_get_stack_function_timeout(2); HistoryThreads MemoryHistoryASan::GetHistoryThreads(lldb::addr_t address) { HistoryThreads result; @@ -178,7 +178,7 @@ HistoryThreads MemoryHistoryASan::GetHis options.SetTryAllThreads(true); options.SetStopOthers(true); options.SetIgnoreBreakpoints(true); - options.SetTimeoutUsec(GET_STACK_FUNCTION_TIMEOUT_USEC); + options.SetTimeout(g_get_stack_function_timeout); options.SetPrefix(memory_history_asan_command_prefix); options.SetAutoApplyFixIts(false); options.SetLanguage(eLanguageTypeObjC_plus_plus); Modified: lldb/trunk/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp?rev=288797&r1=288796&r2=288797&view=diff ============================================================================== --- lldb/trunk/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp (original) +++ lldb/trunk/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp Tue Dec 6 05:24:51 2016 @@ -734,7 +734,7 @@ Error PlatformPOSIX::EvaluateLibdlExpres expr_options.SetLanguage(eLanguageTypeC_plus_plus); expr_options.SetTrapExceptions(false); // dlopen can't throw exceptions, so // don't do the work to trap them. - expr_options.SetTimeoutUsec(2000000); // 2 seconds + expr_options.SetTimeout(std::chrono::seconds(2)); Error expr_error; ExpressionResults result = Modified: lldb/trunk/source/Plugins/Process/Utility/InferiorCallPOSIX.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/Utility/InferiorCallPOSIX.cpp?rev=288797&r1=288796&r2=288797&view=diff ============================================================================== --- lldb/trunk/source/Plugins/Process/Utility/InferiorCallPOSIX.cpp (original) +++ lldb/trunk/source/Plugins/Process/Utility/InferiorCallPOSIX.cpp Tue Dec 6 05:24:51 2016 @@ -61,7 +61,7 @@ bool lldb_private::InferiorCallMmap(Proc options.SetIgnoreBreakpoints(true); options.SetTryAllThreads(true); options.SetDebug(false); - options.SetTimeoutUsec(500000); + options.SetTimeout(std::chrono::milliseconds(500)); options.SetTrapExceptions(false); addr_t prot_arg, flags_arg = 0; @@ -151,7 +151,7 @@ bool lldb_private::InferiorCallMunmap(Pr options.SetIgnoreBreakpoints(true); options.SetTryAllThreads(true); options.SetDebug(false); - options.SetTimeoutUsec(500000); + options.SetTimeout(std::chrono::milliseconds(500)); options.SetTrapExceptions(false); AddressRange munmap_range; @@ -200,7 +200,7 @@ bool lldb_private::InferiorCall(Process options.SetIgnoreBreakpoints(true); options.SetTryAllThreads(true); options.SetDebug(false); - options.SetTimeoutUsec(500000); + options.SetTimeout(std::chrono::milliseconds(500)); options.SetTrapExceptions(trap_exceptions); ClangASTContext *clang_ast_context = Modified: lldb/trunk/source/Plugins/SystemRuntime/MacOSX/AppleGetItemInfoHandler.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/SystemRuntime/MacOSX/AppleGetItemInfoHandler.cpp?rev=288797&r1=288796&r2=288797&view=diff ============================================================================== --- lldb/trunk/source/Plugins/SystemRuntime/MacOSX/AppleGetItemInfoHandler.cpp (original) +++ lldb/trunk/source/Plugins/SystemRuntime/MacOSX/AppleGetItemInfoHandler.cpp Tue Dec 6 05:24:51 2016 @@ -340,7 +340,7 @@ AppleGetItemInfoHandler::GetItemInfo(Thr options.SetUnwindOnError(true); options.SetIgnoreBreakpoints(true); options.SetStopOthers(true); - options.SetTimeoutUsec(500000); + options.SetTimeout(std::chrono::milliseconds(500)); options.SetTryAllThreads(false); thread.CalculateExecutionContext(exe_ctx); Modified: lldb/trunk/source/Plugins/SystemRuntime/MacOSX/AppleGetPendingItemsHandler.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/SystemRuntime/MacOSX/AppleGetPendingItemsHandler.cpp?rev=288797&r1=288796&r2=288797&view=diff ============================================================================== --- lldb/trunk/source/Plugins/SystemRuntime/MacOSX/AppleGetPendingItemsHandler.cpp (original) +++ lldb/trunk/source/Plugins/SystemRuntime/MacOSX/AppleGetPendingItemsHandler.cpp Tue Dec 6 05:24:51 2016 @@ -351,7 +351,7 @@ AppleGetPendingItemsHandler::GetPendingI options.SetUnwindOnError(true); options.SetIgnoreBreakpoints(true); options.SetStopOthers(true); - options.SetTimeoutUsec(500000); + options.SetTimeout(std::chrono::milliseconds(500)); options.SetTryAllThreads(false); thread.CalculateExecutionContext(exe_ctx); Modified: lldb/trunk/source/Plugins/SystemRuntime/MacOSX/AppleGetQueuesHandler.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/SystemRuntime/MacOSX/AppleGetQueuesHandler.cpp?rev=288797&r1=288796&r2=288797&view=diff ============================================================================== --- lldb/trunk/source/Plugins/SystemRuntime/MacOSX/AppleGetQueuesHandler.cpp (original) +++ lldb/trunk/source/Plugins/SystemRuntime/MacOSX/AppleGetQueuesHandler.cpp Tue Dec 6 05:24:51 2016 @@ -357,7 +357,7 @@ AppleGetQueuesHandler::GetCurrentQueues( options.SetUnwindOnError(true); options.SetIgnoreBreakpoints(true); options.SetStopOthers(true); - options.SetTimeoutUsec(500000); + options.SetTimeout(std::chrono::milliseconds(500)); options.SetTryAllThreads(false); thread.CalculateExecutionContext(exe_ctx); Modified: lldb/trunk/source/Plugins/SystemRuntime/MacOSX/AppleGetThreadItemInfoHandler.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/SystemRuntime/MacOSX/AppleGetThreadItemInfoHandler.cpp?rev=288797&r1=288796&r2=288797&view=diff ============================================================================== --- lldb/trunk/source/Plugins/SystemRuntime/MacOSX/AppleGetThreadItemInfoHandler.cpp (original) +++ lldb/trunk/source/Plugins/SystemRuntime/MacOSX/AppleGetThreadItemInfoHandler.cpp Tue Dec 6 05:24:51 2016 @@ -355,7 +355,7 @@ AppleGetThreadItemInfoHandler::GetThread options.SetUnwindOnError(true); options.SetIgnoreBreakpoints(true); options.SetStopOthers(true); - options.SetTimeoutUsec(500000); + options.SetTimeout(std::chrono::milliseconds(500)); options.SetTryAllThreads(false); thread.CalculateExecutionContext(exe_ctx); Modified: lldb/trunk/source/Target/Process.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Target/Process.cpp?rev=288797&r1=288796&r2=288797&view=diff ============================================================================== --- lldb/trunk/source/Target/Process.cpp (original) +++ lldb/trunk/source/Target/Process.cpp Tue Dec 6 05:24:51 2016 @@ -70,18 +70,8 @@ using namespace lldb; using namespace lldb_private; using namespace std::chrono; -// A temporary function to convert between old representations of timeouts (0 -// means infinite wait) and new Timeout class (0 means "poll"). -// TODO(labath): Fix up all callers and remove this. -static Timeout<std::micro> ConvertTimeout(std::chrono::microseconds t) { - if (t == std::chrono::microseconds(0)) - return llvm::None; - return t; -} - // Comment out line below to disable memory caching, overriding the process -// setting -// target.process.disable-memory-cache +// setting target.process.disable-memory-cache #define ENABLE_MEMORY_CACHING #ifdef ENABLE_MEMORY_CACHING @@ -4805,20 +4795,19 @@ GetOneThreadExpressionTimeout(const Eval const milliseconds default_one_thread_timeout(250); // If the overall wait is forever, then we don't need to worry about it. - if (options.GetTimeoutUsec() == 0) { - if (options.GetOneThreadTimeoutUsec() != 0) - return microseconds(options.GetOneThreadTimeoutUsec()); - return default_one_thread_timeout; + if (!options.GetTimeout()) { + return options.GetOneThreadTimeout() ? *options.GetOneThreadTimeout() + : default_one_thread_timeout; } // If the one thread timeout is set, use it. - if (options.GetOneThreadTimeoutUsec() != 0) - return microseconds(options.GetOneThreadTimeoutUsec()); + if (options.GetOneThreadTimeout()) + return *options.GetOneThreadTimeout(); // Otherwise use half the total timeout, bounded by the // default_one_thread_timeout. return std::min<microseconds>(default_one_thread_timeout, - microseconds(options.GetTimeoutUsec()) / 2); + *options.GetTimeout() / 2); } static Timeout<std::micro> @@ -4827,16 +4816,15 @@ GetExpressionTimeout(const EvaluateExpre // If we are going to run all threads the whole time, or if we are only // going to run one thread, we can just return the overall timeout. if (!options.GetStopOthers() || !options.GetTryAllThreads()) - return ConvertTimeout(microseconds(options.GetTimeoutUsec())); + return options.GetTimeout(); if (before_first_timeout) return GetOneThreadExpressionTimeout(options); - if (options.GetTimeoutUsec() == 0) + if (!options.GetTimeout()) return llvm::None; else - return microseconds(options.GetTimeoutUsec()) - - GetOneThreadExpressionTimeout(options); + return *options.GetTimeout() - GetOneThreadExpressionTimeout(options); } ExpressionResults @@ -4921,8 +4909,8 @@ Process::RunThreadPlan(ExecutionContext // Make sure the timeout values make sense. The one thread timeout needs to be // smaller than the overall timeout. - if (options.GetOneThreadTimeoutUsec() != 0 && options.GetTimeoutUsec() != 0 && - options.GetTimeoutUsec() < options.GetOneThreadTimeoutUsec()) { + if (options.GetOneThreadTimeout() && options.GetTimeout() && + *options.GetTimeout() < *options.GetOneThreadTimeout()) { diagnostic_manager.PutString(eDiagnosticSeverityError, "RunThreadPlan called with one thread " "timeout greater than total timeout"); Modified: lldb/trunk/source/Target/Target.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Target/Target.cpp?rev=288797&r1=288796&r2=288797&view=diff ============================================================================== --- lldb/trunk/source/Target/Target.cpp (original) +++ lldb/trunk/source/Target/Target.cpp Tue Dec 6 05:24:51 2016 @@ -62,6 +62,8 @@ using namespace lldb; using namespace lldb_private; +constexpr std::chrono::milliseconds EvaluateExpressionOptions::default_timeout; + ConstString &Target::GetStaticBroadcasterClass() { static ConstString class_name("lldb.target"); return class_name; _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits