public function get_stat()
{
$stat = array();
$map = $this->mem_object->read('map');
$size = 0;
if (!empty($map)) {
foreach ($map as $v) {
$size += $v[self::map_key_fin] - $v[self::map_key_start];
}
}
$stat['size'] = $size;
$q_read = msg_get_queue($this->mutex->getReadQKey());
if (!empty($q_read)) {
$q_stat = msg_stat_queue($q_read);
$stat['readers'] = $q_stat['msg_qnum'];
$stat['readers_qid'] = $this->mutex->getReadQKey();
}
$q_writers = msg_get_queue($this->mutex->getWriteQKey());
if (!empty($q_writers)) {
$q_stat = msg_stat_queue($q_writers);
$stat['writers'] = $q_stat['msg_qnum'];
$stat['writers_qid'] = $this->mutex->getWriteQKey();
}
$stat['shm_key'] = $this->shm_data_key;
$stat['shm_id'] = $this->shm_data_id;
$stat['max_size'] = $this->max_size;
$stat['head'] = $this->mem_object->get_stat();
$stat['err_log'] = $this->mutex->getErrLog();
return $stat;
}