summaryrefslogtreecommitdiff
path: root/www/wiki/includes/deferred/TransactionRoundDefiningUpdate.php
diff options
context:
space:
mode:
Diffstat (limited to 'www/wiki/includes/deferred/TransactionRoundDefiningUpdate.php')
-rw-r--r--www/wiki/includes/deferred/TransactionRoundDefiningUpdate.php30
1 files changed, 30 insertions, 0 deletions
diff --git a/www/wiki/includes/deferred/TransactionRoundDefiningUpdate.php b/www/wiki/includes/deferred/TransactionRoundDefiningUpdate.php
new file mode 100644
index 00000000..a32d4a07
--- /dev/null
+++ b/www/wiki/includes/deferred/TransactionRoundDefiningUpdate.php
@@ -0,0 +1,30 @@
+<?php
+
+/**
+ * Deferrable update that must run outside of any explicit LBFactory transaction round
+ *
+ * @since 1.31
+ */
+class TransactionRoundDefiningUpdate implements DeferrableUpdate, DeferrableCallback {
+ /** @var callable|null */
+ private $callback;
+ /** @var string */
+ private $fname;
+
+ /**
+ * @param callable $callback
+ * @param string $fname Calling method
+ */
+ public function __construct( callable $callback, $fname = 'unknown' ) {
+ $this->callback = $callback;
+ $this->fname = $fname;
+ }
+
+ public function doUpdate() {
+ call_user_func( $this->callback );
+ }
+
+ public function getOrigin() {
+ return $this->fname;
+ }
+}