hustxiaoc / node.js

Node.js学习笔记
325 stars 86 forks source link

data structure in libuv #6

Open hustxiaoc opened 9 years ago

hustxiaoc commented 9 years ago

uv_loop_t

 {
  data = 0x0000000000000000
  active_handles = 2
  handle_queue = ([0] = void * = 0x00000001000238a0, [1] = void * = 0x0000000100023bc8)
  active_reqs = ([0] = void * = 0x0000000100023678, [1] = void * = 0x0000000100023678)
  stop_flag = 0
  flags = 0
  backend_fd = 5
  pending_queue = ([0] = void * = 0x00000001000236a0, [1] = void * = 0x00000001000236a0)
  watcher_queue = ([0] = void * = 0x00000001000236b0, [1] = void * = 0x00000001000236b0)
  watchers = 0x0000000100108a90
  nwatchers = 14
  nfds = 2
  wq = ([0] = void * = 0x00000001000236d0, [1] = void * = 0x00000001000236d0)
  wq_mutex = (__sig = 1297437784, __opaque = "")
  wq_async = {
    close_cb = 0x0000000000000000
    data = 0x0000000000000000
    loop = 0x0000000100023658
    type = UV_ASYNC
    handle_queue = ([0] = void * = 0x0000000100023b70, [1] = void * = 0x00000001000238a0)
    flags = 49152
    next_closing = 0x0000000000000000
    async_cb = 0x0000000100017060 (main`uv__work_done at threadpool.c:194)
    queue = ([0] = void * = 0x0000000100023bf0, [1] = void * = 0x00000001000237c8)
    pending = 0
  }
  closing_handles = 0x0000000000000000
  process_handles = {
    [0] = ([0] = void * = 0x0000000100023788, [1] = void * = 0x0000000100023788)
  }
  prepare_handles = ([0] = void * = 0x0000000100023b98, [1] = void * = 0x0000000100023b98)
  check_handles = ([0] = void * = 0x00000001000237a8, [1] = void * = 0x00000001000237a8)
  idle_handles = ([0] = void * = 0x00000001000237b8, [1] = void * = 0x00000001000237b8)
  async_handles = ([0] = void * = 0x0000000100023768, [1] = void * = 0x0000000100023bf0)
  async_watcher = {
    cb = 0x0000000100005150 (main`uv__async_event at async.c:75)
    io_watcher = {
      cb = 0x00000001000054b0 (main`uv__async_io at async.c:124)
      pending_queue = ([0] = void * = 0x00000001000237e8, [1] = void * = 0x00000001000237e8)
      watcher_queue = ([0] = void * = 0x00000001000237f8, [1] = void * = 0x00000001000237f8)
      pevents = 1
      events = 1
      fd = 8
      rcount = 0
      wcount = 0
    }
    wfd = 9
  }
  timer_handles = {
    rbh_root = 0x0000000000000000
  }
  time = 15073057
  signal_pipefd = ([0] = 6, [1] = 7)
  signal_io_watcher = {
    cb = 0x00000001000103f0 (main`uv__signal_event at signal.c:343)
    pending_queue = ([0] = void * = 0x0000000100023848, [1] = void * = 0x0000000100023848)
    watcher_queue = ([0] = void * = 0x0000000100023858, [1] = void * = 0x0000000100023858)
    pevents = 1
    events = 1
    fd = 6
    rcount = 0
    wcount = 0
  }
  child_watcher = {
    close_cb = 0x0000000000000000
    data = 0x0000000000000000
    loop = 0x0000000100023658
    type = UV_SIGNAL
    handle_queue = ([0] = void * = 0x0000000100023740, [1] = void * = 0x0000000100023668)
    flags = 32768
    next_closing = 0x0000000000000000
    signal_cb = 0x0000000000000000
    signum = 0
    tree_entry = {
      rbe_left = 0x0000000000000000
      rbe_right = 0x0000000000000000
      rbe_parent = 0x0000000000000000
      rbe_color = 0
    }
    caught_signals = 0
    dispatched_signals = 0
  }
  emfile_fd = -1
  timer_counter = 0
  cf_thread = 0x0000000000000000
  _cf_reserved = 0x0000000000000000
  cf_state = 0x0000000000000000
  cf_mutex = (__sig = 0, __opaque = "")
  cf_sem = 0
  cf_signals = ([0] = void * = 0x0000000000000000, [1] = void * = 0x0000000000000000)
}
hustxiaoc commented 9 years ago

uv_stream_t

server tcp stream

 {
  close_cb = 0x0000000000000000
  data = 0x0000000000000000
  loop = 0x0000000100023658
  type = UV_TCP
  handle_queue = ([0] = void * = 0x0000000100023668, [1] = void * = 0x0000000100023740)
  flags = 24672
  next_closing = 0x0000000000000000
  write_queue_size = 0
  alloc_cb = 0x0000000000000000
  read_cb = 0x0000000000000000
  read2_cb = 0x0000000000000000
  connect_req = 0x0000000000000000
  shutdown_req = 0x0000000000000000
  io_watcher = {
    cb = 0x0000000100011f70 (main`uv__server_io at stream.c:497)
    pending_queue = ([0] = void * = 0x00007fff5fbff9d8, [1] = void * = 0x00007fff5fbff9d8)
    watcher_queue = ([0] = void * = 0x00007fff5fbff9e8, [1] = void * = 0x00007fff5fbff9e8)
    pevents = 1
    events = 1
    fd = 11
    rcount = 1
    wcount = 0
  }
  write_queue = ([0] = void * = 0x00007fff5fbffa10, [1] = void * = 0x00007fff5fbffa10)
  write_completed_queue = ([0] = void * = 0x00007fff5fbffa20, [1] = void * = 0x00007fff5fbffa20)
  connection_cb = 0x000000010001fae0 (main`connection_cb at main.c:25)
  delayed_error = 0
  accepted_fd = -1
  select = 0x0000000000000000
}
hustxiaoc commented 9 years ago

uv_write_t

  {
  data = 0x0000000000000000
  type = UV_WRITE
  active_queue = ([0] = void * = 0x0000000100023678, [1] = void * = 0x0000000100023678)
  cb = 0x000000010001fd60 (main`write_cb at main.c:71)
  send_handle = 0x0000000000000000
  handle = 0x000000010010ac20
  queue = ([0] = void * = 0x000000010010acd0, [1] = void * = 0x000000010010acd0)
  write_index = 0
  bufs = 0x000000010010ad70
  nbufs = 1
  error = 0
  bufsml = {
    [0] = (base = "123456\n", len = 7)
    [1] = (base = char * = 0x0000000000000000, len = 0)
    [2] = (base = char * = 0x0000000000000000, len = 0)
    [3] = (base = char * = 0x0000000000000000, len = 0)
  }
}