docs
John Napiorkowski [Tue, 27 Jan 2015 00:52:00 +0000 (18:52 -0600)]
lib/Catalyst/Plugin/Session/Store.pm

index e3b8a1c..8b8e908 100644 (file)
@@ -115,6 +115,18 @@ since nothing will actively delete an expired session. The
 C<delete_expired_sessions> method is there so that regularly scheduled
 maintenance scripts can give your backend the opportunity to clean up.
 
+=head2 Early Finalization
+
+By default the main session plugin will finalize during body finalization
+which ensures that all controller code related to the session has completed.
+However some storage plugins may wish to finalize earlier, during header
+finalization.  For example a storage that saved state in a client cookie
+would wish this.  If a storage plugin wants to finalize early it should set
+$c->_needs_early_session_finalization to true.  Please note that if you
+do this in a storage plugin, you should warn users not to attempt to change
+or add session keys if you use a streaming or socket interface such as
+$c->res->write, $c->res->write_fh or $c->req->io_fh.
+
 =cut