Committer: ailyin
LJSUP-10483 (Selfpromo delivery mechanics is broken)U trunk/cgi-bin/ljdb.pl
Modified: trunk/cgi-bin/ljdb.pl =================================================================== --- trunk/cgi-bin/ljdb.pl 2011-11-23 14:21:59 UTC (rev 20615) +++ trunk/cgi-bin/ljdb.pl 2011-11-23 14:25:18 UTC (rev 20616) @@ -501,6 +501,27 @@ return 1; } +sub lock_taken { + my ( $db, $dbrole, $lockname ) = @_; + + return unless $db && $lockname; + return unless $dbrole eq 'global' || $dbrole eq 'user'; + + my ($connid) = $db->selectrow_array( 'SELECT IS_USED_LOCK(?)', + undef, $lockname ); + + return $connid ? 1 : 0; +} + +sub lock_free { + my ( $db, $dbrole, $lockname ) = @_; + + return unless $db && $lockname; + return unless $dbrole eq 'global' || $dbrole eq 'user'; + + return ! lock_taken( $db, $dbrole, $lockname ); +} + # <LJFUNC> # name: LJ::disconnect_dbs # des: Clear cached DB handles