(searches, recentchanges).
sub cgi_recentchanges ($) { #{{{
my $q=shift;
sub cgi_recentchanges ($) { #{{{
my $q=shift;
# 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
# 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
elsif ($do eq 'hyperestraier') {
cgi_hyperestraier();
}
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}));
if (! $session) {
CGI::Session->name("ikiwiki_session_".encode_utf8($config{wikiname}));
* 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.
* 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
ikiwiki (1.33) unstable; urgency=low
getconfig();
if ($config{cgi}) {
getconfig();
if ($config{cgi}) {
loadindex();
require IkiWiki::CGI;
cgi();
loadindex();
require IkiWiki::CGI;
cgi();