예제 #1
0
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);
}
예제 #2
0
파일: RB_Tree.cpp 프로젝트: imace/nnt
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_;
    }
}
예제 #3
0
void ntp_session::close_all()
{
    close_i();   //关闭socket
 }
예제 #4
0
void ServiceAbstract::close() throw (ServiceException&) {
    ACE_GUARD(ACE_SYNCH_RECURSIVE_MUTEX, ace_mon, m_lock);
    toClosing();
    close_i();
    toClose();
}