Revision: 46156
Author: aaron
Date: 2009-01-24 18:35:13 +0000 (Sat, 24 Jan 2009)
Log Message:
-----------
Hurry up and commit db op before doing mailing op to the users to notify
Modified Paths:
--------------
trunk/phase3/includes/UserMailer.php
Modified: trunk/phase3/includes/UserMailer.php
===================================================================
--- trunk/phase3/includes/UserMailer.php 2009-01-24 18:32:35 UTC (rev
46155)
+++ trunk/phase3/includes/UserMailer.php 2009-01-24 18:35:13 UTC (rev
46156)
@@ -316,7 +316,6 @@
* @param $oldid (default: false)
*/
function actuallyNotifyOnPageChange($editor, $title, $timestamp,
$summary, $minorEdit, $oldid=false) {
-
# we use $wgPasswordSender as sender's address
global $wgEnotifWatchlist;
global $wgEnotifMinorEdits, $wgEnotifUserTalk,
$wgShowUpdatedMarker;
@@ -372,7 +371,6 @@
$dbr = wfGetDB( DB_SLAVE );
list( $user ) = $dbr->tableNamesN( 'user' );
-
$res = $dbr->select( array( 'watchlist', 'user'
),
array( "$user.*" ),
array(
@@ -381,7 +379,8 @@
'wl_namespace' =>
$title->getNamespace(),
$userCondition,
'wl_notificationtimestamp IS
NULL',
- ), __METHOD__ );
+ ), __METHOD__
+ );
$userArray = UserArray::newFromResult( $res );
foreach ( $userArray as $watchingUser ) {
@@ -401,8 +400,6 @@
$this->compose( $user );
}
- $this->sendMails();
-
$latestTimestamp = Revision::getTimestampFromId( $title,
$title->getLatestRevID() );
// Do not update watchlists if something else already did.
if ( $timestamp >= $latestTimestamp && ($wgShowUpdatedMarker ||
$wgEnotifWatchlist) ) {
@@ -410,17 +407,21 @@
# listed with an "updated since your last visit" icon
in the watch list. Do
# not do this to users for their own edits.
$dbw = wfGetDB( DB_MASTER );
+ $dbw->begin();
$dbw->update( 'watchlist',
array( /* SET */
'wl_notificationtimestamp' =>
$dbw->timestamp($timestamp)
), array( /* WHERE */
'wl_title' => $title->getDBkey(),
'wl_namespace' =>
$title->getNamespace(),
- 'wl_notificationtimestamp IS NULL',
+ 'wl_notificationtimestamp IS NULL', //
store oldest unseen change time
'wl_user != ' . $editor->getID()
), __METHOD__
);
+ $dbw->commit();
}
+
+ $this->sendMails();
wfProfileOut( __METHOD__ );
} # function NotifyOnChange
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs