Make statsd counts for MWCallableUpdate actually useful
[lhc/web/wiklou.git] / includes / deferred / CallableUpdate.php
index 4b19c20..d63c292 100644 (file)
@@ -3,22 +3,26 @@
 /**
  * Deferrable Update for closure/callback
  */
-class MWCallableUpdate implements DeferrableUpdate {
-       /** @var Closure|callable */
+class MWCallableUpdate implements DeferrableUpdate, DeferrableCallback {
+       /** @var callable */
        private $callback;
+       /** @var string */
+       private $fname;
 
        /**
         * @param callable $callback
-        * @throws InvalidArgumentException
+        * @param string $fname Calling method
         */
-       public function __construct( $callback ) {
-               if ( !is_callable( $callback ) ) {
-                       throw new InvalidArgumentException( 'Not a valid callback/closure!' );
-               }
+       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;
+       }
 }