static void dump_page(pid_t pid, void *start) { debug_print("Dump page %p\n", start); char current_path[MAX_PATH]; snprintf(current_path, sizeof(current_path), "%s/%012lx.memdump", dump_path, (register_t)start); ptrace_putdata(pid, (long)tracer_buff->str_tmp, current_path, MAX_PATH); if (access(current_path, F_OK) != -1) return; int out = openat_i(pid, tracer_buff->str_tmp); write_i(pid, out, start, PAGESIZE); close_i(pid, out); }
template <class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK> void ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::operator = (const ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> &rbt) { ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::operator ="); ACE_WRITE_GUARD (ACE_LOCK, ace_mon, this->lock_); if (this != &rbt) { // Clear out the existing tree. close_i (); // Make a deep copy of the passed tree. ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> iter(rbt); for (iter.first (); iter.is_done () == 0; iter.next ()) insert_i (*(iter.key ()), *(iter.item ())); // Use the same allocator as the rhs. allocator_ = rbt.allocator_; } }
void ntp_session::close_all() { close_i(); //关闭socket }
void ServiceAbstract::close() throw (ServiceException&) { ACE_GUARD(ACE_SYNCH_RECURSIVE_MUTEX, ace_mon, m_lock); toClosing(); close_i(); toClose(); }