Still, we need to rethink user 'invalidations' (probably by replacing user object, rather than just touching the user). There are way too many invalidation cases out there, that happen in parallel blocking out each other.
function addWatch( $title ) {
$wl = WatchedItem::fromUserTitle( $this, $title );
$wl->addWatch();
+ $this->invalidateCache();
}
/**
function removeWatch( $title ) {
$wl = WatchedItem::fromUserTitle( $this, $title );
$wl->removeWatch();
+ $this->invalidateCache();
}
/**