Browse Source

Add MConnection.Status()

pull/456/head
Jae Kwon 9 years ago
parent
commit
3abc18d7ba
1 changed files with 24 additions and 0 deletions
  1. +24
    -0
      connection.go

+ 24
- 0
connection.go View File

@ -454,6 +454,30 @@ FOR_LOOP:
} }
} }
func (c *MConnection) Status() interface{} {
status := make(map[string]interface{})
status["sendMonitor"] = c.sendMonitor.Status()
status["recvMonitor"] = c.recvMonitor.Status()
type channelStatus struct {
SendQueueCapacity int
SendQueueSize int
Priority int
RecentlySent int64
}
for _, channel := range c.channels {
status[Fmt("ch[%X]", channel.id)] = channelStatus{
SendQueueCapacity: cap(channel.sendQueue),
SendQueueSize: int(channel.sendQueueSize), // TODO use atomic
Priority: channel.priority,
RecentlySent: channel.recentlySent,
}
}
return status
}
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
type ChannelDescriptor struct { type ChannelDescriptor struct {


Loading…
Cancel
Save