X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=inline;f=classes%2FQueue_item.php;h=d17e512b965646d62ac7ee98c0107912531139fb;hb=41dc9ca497dd065d72440cb2c706038f191a2c0c;hp=f83c2cef184d49f868d712a82a016fefa34d4c68;hpb=611924e814320c768771af21a923e615118c1feb;p=quix0rs-gnu-social.git diff --git a/classes/Queue_item.php b/classes/Queue_item.php index f83c2cef18..d17e512b96 100644 --- a/classes/Queue_item.php +++ b/classes/Queue_item.php @@ -32,7 +32,7 @@ class Queue_item extends Memcached_DataObject if ($transports) { if (is_array($transports)) { // @fixme use safer escaping - $list = implode("','", array_map('addslashes', $transports)); + $list = implode("','", array_map(array($qi, 'escape'), $transports)); $qi->whereAdd("transport in ('$list')"); } else { $qi->transport = $transports; @@ -46,9 +46,9 @@ class Queue_item extends Memcached_DataObject $cnt = $qi->find(true); if ($cnt) { - # XXX: potential race condition - # can we force it to only update if claimed is still null - # (or old)? + // XXX: potential race condition + // can we force it to only update if claimed is still null + // (or old)? common_log(LOG_INFO, 'claiming queue item id = ' . $qi->id . ' for transport ' . $qi->transport); $orig = clone($qi); @@ -64,4 +64,17 @@ class Queue_item extends Memcached_DataObject $qi = null; return null; } + + /** + * Release a claimed item. + */ + function releaseCLaim() + { + // DB_DataObject doesn't let us save nulls right now + $sql = sprintf("UPDATE queue_item SET claimed=NULL WHERE id=%d", $this->id); + $this->query($sql); + + $this->claimed = null; + $this->encache(); + } }