check the state of the queue before diving in to process it
darcs-hash:20080830095709-84dde-a64262c1b32e506cb2c43f8b4fb55ab88effc22f.gz
This commit is contained in:
parent
c46f152697
commit
0217a74f13
@ -616,4 +616,12 @@ class XMPPHP_XMLStream {
|
||||
xml_set_element_handler($this->parser, 'startXML', 'endXML');
|
||||
xml_set_character_data_handler($this->parser, 'charXML');
|
||||
}
|
||||
|
||||
public function readyToProcess() {
|
||||
$read = array($this->socket);
|
||||
$write = null;
|
||||
$except = null;
|
||||
$updated = @stream_select($read, $write, $except, 0);
|
||||
return $updated !== false;
|
||||
}
|
||||
}
|
||||
|
@ -53,9 +53,15 @@ class XmppQueueHandler extends QueueHandler {
|
||||
}
|
||||
|
||||
function idle() {
|
||||
$this->log(LOG_DEBUG, 'Processing the incoming message queue.');
|
||||
$this->log(LOG_DEBUG, 'Checking the incoming message queue.');
|
||||
# Process the queue for a second
|
||||
$this->conn->processTime(1);
|
||||
if ($this->conn->readyToProcess()) {
|
||||
$this->log(LOG_DEBUG, 'Something in the incoming message queue; processing it.');
|
||||
$this->conn->processTime(1);
|
||||
$this->log(LOG_DEBUG, 'Done processing incoming message queue.');
|
||||
} else {
|
||||
$this->log(LOG_DEBUG, 'Nothing in the incoming message queue; skipping it.');
|
||||
}
|
||||
}
|
||||
|
||||
function finish() {
|
||||
|
Loading…
Reference in New Issue
Block a user