web2py opens it anyway because it is in the model.
You can force a release

DAL.close_all_instances(DAL.commit)

at the beginning of your long action. should work

On Nov 11, 12:12 am, VP <[email protected]> wrote:
> Didn't think of this, but in fact I'm using sqlite, which seems to be
> a lot faster than postgreSQL.   However, the controller function that
> i called does not touch the database.  So unless web2py opens the
> database and kind of "leaves it there", it shouldn't happen (right?).
>
> Another behavior is that when I use routes to route the default
> controller to domain1 and the controller that has this function to a
> domain2, then there is no blocking for functions called in domain1
> (even if this intensive function is running in domain2).
>
> What gives?
>
> On Nov 10, 11:57 pm, mdipierro <[email protected]> wrote:
>
> > I do not think this is locking web2py. But there are two
> > possibilities:
> > - if you are using sqlite, the database is locked (sqlite cannot be
> > accessed concurrently)
> > - the user session is locked. This means the user who called the long
> > running process cannot access other actions until his session is
> > unlocked. You can do this manually in th long running action
> > (session._unlock()) assuming it does not save anything in the session.
>
> > On Nov 10, 11:54 pm, VP <[email protected]> wrote:
>
> > > I have this problem that I think is related to threading and web2py.
> > > I have an apache2 standard setup with web2py.
>
> > > One of the function (in controller) is computing intensive, taking up
> > > to 10+ seconds to execute.   When this function is called 
> > > (i.e.http://domain/app/func), the app is locked up.  Other functions can
> > > not be run until this function is done.
>
> > > I remember the book mentions the default web2py config is supposed to
> > > have up to 15 threads.  So, this behavior shouldn't happen right?
>
> > > Any help is appreciated.
>
>

Reply via email to