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. > >