Thanks. This is helpful.

On Thursday, March 17, 2011 1:14:22 PM UTC-4, Jonathan Lundell wrote:

>  On Mar 17, 2011, at 9:45 AM, Anthony wrote:
>
> On Thursday, March 17, 2011 11:17:17 AM UTC-4, Jonathan Lundell wrote: 
>>
>>  On Mar 17, 2011, at 7:40 AM, Anthony wrote:
>>
>> In the book under "Efficiency Tricks" it says:
>>  
>>  Set session.forget() in all controllers and/or functions that do not 
>> change the session.
>>  
>> Does this new change make it unnecessary to bother calling 
>> session.forget() in most cases because sessions are no longer saved when 
>> empty or not modified?
>>
>> There's at least one reason to call session.forget(): it unlocks the 
>> session file, allowing other requests in the same session to proceed. 
>>  
>> This won't be useful in all cases, since there may not *be* other requests 
>> pending. But it's a very lightweight call, so it doesn't do any harm.
>>
>  
> To unlock the session file, don't you have to call session.forget(request) 
> or session._unlock(request)? Is plain session.forget() (with no arguments) 
> still useful?
>
>
> session.forget(response), yes.
>
> With no arguments, no, offhand I think it's not useful, unless perhaps the 
> session actually got changed, in which case calling forget would 
> (effectively) discard the changes.
>
>   
> It would be helpful to get an understanding of exactly when session files 
> are created, locked, written to, and unlocked as well as the exact effects 
> and use cases for session.forget(), session.forget(request), and 
> session._unlock(request), particularly in light of the recent change in 
> trunk.
>
>
> I agree, though I think it should be in terms of an API spec rather than a 
> description of how it happens to work now, which might lock in accidental 
> behavior.
>
> At any rate, if a session file doesn't exist, it gets created lazily, at 
> the first point at which it would have to be written. So a series of 
> requests that never changes the session object will never create a session 
> file. However, since both auth and forms keep state in the session, a 
> session will be created when an auth form is used.
>

Reply via email to