builtin_commandline_scoped_transient_t::~builtin_commandline_scoped_transient_t() { ASSERT_IS_MAIN_THREAD(); scoped_lock locker(transient_commandline_lock); wcstring_list_t *stack = get_transient_stack(); assert(this->token == stack->size()); stack->pop_back(); }
builtin_commandline_scoped_transient_t::builtin_commandline_scoped_transient_t( const wcstring &cmd) { ASSERT_IS_MAIN_THREAD(); auto stack = get_transient_stack().acquire(); stack->push_back(cmd); this->token = stack->size(); }
builtin_commandline_scoped_transient_t::~builtin_commandline_scoped_transient_t() { ASSERT_IS_MAIN_THREAD(); auto locked = get_transient_stack().acquire(); wcstring_list_t &stack = locked.value; assert(this->token == stack.size()); stack.pop_back(); }
builtin_commandline_scoped_transient_t::builtin_commandline_scoped_transient_t(const wcstring &cmd) { ASSERT_IS_MAIN_THREAD(); scoped_lock locker(transient_commandline_lock); wcstring_list_t *stack = get_transient_stack(); stack->push_back(cmd); this->token = stack->size(); }
static bool get_top_transient(wcstring *out_result) { auto stack = get_transient_stack().acquire(); if (stack->empty()) { return false; } out_result->assign(stack->back()); return true; }
builtin_commandline_scoped_transient_t::builtin_commandline_scoped_transient_t( const wcstring &cmd) { ASSERT_IS_MAIN_THREAD(); auto locked = get_transient_stack().acquire(); wcstring_list_t &stack = locked.value; stack.push_back(cmd); this->token = stack.size(); }
static bool get_top_transient(wcstring *out_result) { auto locked = get_transient_stack().acquire(); wcstring_list_t &stack = locked.value; if (stack.empty()) { return false; } out_result->assign(stack.back()); return true; }
static bool get_top_transient(wcstring *out_result) { ASSERT_IS_MAIN_THREAD(); bool result = false; scoped_lock locker(transient_commandline_lock); const wcstring_list_t *stack = get_transient_stack(); if (!stack->empty()) { out_result->assign(stack->back()); result = true; } return result; }
builtin_commandline_scoped_transient_t::~builtin_commandline_scoped_transient_t() { ASSERT_IS_MAIN_THREAD(); auto stack = get_transient_stack().acquire(); assert(this->token == stack->size()); stack->pop_back(); }