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 <mdipie...@cs.depaul.edu> 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 <vtp2...@gmail.com> 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