protected function wait($type = self::writers)
{
$q = $this->select_q($type);
if (empty($q)) {
return false;
}
$stat = msg_stat_queue($q);
if ($stat['msg_qnum'] > 0) {
$starttime = microtime(true);
do {
$stat = msg_stat_queue($q);
if (empty($stat)) {
break;
}
if ($stat['msg_qnum'] <= 0) {
break;
}
if (microtime(true) - $starttime > $this->max_wait_time) {
return false;
}
} while ($stat['msg_qnum'] > 0);
}
return true;
}