summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2006-11-20 12:03:35 +0000
committerjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2006-11-20 12:03:35 +0000
commitd389b0e4a45ebd88705f3bb95bf2e19e10e6ca2a (patch)
tree0284b2d889fea8586b8fff4bd440376b9319d863
parent55aae671ad28ea75263125baea2468641583744d (diff)
* Avoid locking the wiki at all when handling some basic cgi stuff
(searches, recentchanges).
-rw-r--r--IkiWiki/CGI.pm5
-rw-r--r--debian/changelog4
-rwxr-xr-xikiwiki.pl1
3 files changed, 6 insertions, 4 deletions
diff --git a/IkiWiki/CGI.pm b/IkiWiki/CGI.pm
index 53237bcdb..14861e398 100644
--- a/IkiWiki/CGI.pm
+++ b/IkiWiki/CGI.pm
@@ -67,8 +67,6 @@ sub decode_form_utf8 ($) { #{{{
sub cgi_recentchanges ($) { #{{{
my $q=shift;
- unlockwiki();
-
# Optimisation: building recentchanges means calculating lots of
# links. Memoizing htmllink speeds it up a lot (can't be memoized
# during page builds as the return values may change, but they
@@ -715,6 +713,9 @@ sub cgi (;$$) { #{{{
elsif ($do eq 'hyperestraier') {
cgi_hyperestraier();
}
+
+ # Need to lock the wiki before getting a session.
+ lockwiki();
if (! $session) {
CGI::Session->name("ikiwiki_session_".encode_utf8($config{wikiname}));
diff --git a/debian/changelog b/debian/changelog
index d38152132..b622fa006 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -12,8 +12,10 @@ ikiwiki (1.34) UNRELEASED; urgency=low
* Change how post signin actions are propigated through the signin process;
they're now stored in the session.
* Add optional "desc" parameter to shortcut definitions.
+ * Avoid locking the wiki at all when handling some basic cgi stuff
+ (searches, recentchanges).
- -- Joey Hess <joeyh@debian.org> Mon, 20 Nov 2006 06:14:51 -0500
+ -- Joey Hess <joeyh@debian.org> Mon, 20 Nov 2006 06:54:12 -0500
ikiwiki (1.33) unstable; urgency=low
diff --git a/ikiwiki.pl b/ikiwiki.pl
index 60ba5e182..ff1da353e 100755
--- a/ikiwiki.pl
+++ b/ikiwiki.pl
@@ -102,7 +102,6 @@ sub main () { #{{{
getconfig();
if ($config{cgi}) {
- lockwiki();
loadindex();
require IkiWiki::CGI;
cgi();