Ah, yes - would it help the update to leave _instances={}, and add
_by_thread=_instances (and change all the code to reference _by_thread)
Then at some future date, remove again replace _by_thread=instances with
_by_thread={} (and remove _instances).
Would this work?
On Fri, Mar 13, 2009 at 4:39 PM, mdipierro <[email protected]> wrote:
>
> I can change the name. The problem is that if the app is accessed
> while you are doing this, the object has to be mutex locked. That is
> why this is not exposed. it is not thread safe.
>
> Massimo
>
> On Mar 13, 3:58 pm, Yarko Tymciurak <[email protected]> wrote:
> > On Fri, Mar 13, 2009 at 8:58 AM, DenesL <[email protected]> wrote:
> >
> > > On Mar 13, 8:27 am, mdipierro <[email protected]> wrote:
> > > > They are listed in
> >
> > > > SQLDB._instances[thread.id]
> >
> > > > Look into SQLDB._close_all_instances in sql.py
> >
> > > I know there is class SQLDB in gluon.sql, but what is this SQLDB
> > > object?
> >
> > DenesL - sounds like you need to get yourself 2 things: ipython
> (really!
> > will help much) e.g.:
> >
> >
> >
> > > In [3]: d={'a':1,'b':2}
> >
> > >> In [4]: d
> >
> > > Out[4]: {'a': 1, 'b': 2}
> >
> > >> In [5]: d. [type a tab to get completion, and see result below:]
> >
> > > d.__class__ d.__gt__ d.__reduce_ex__ d.items
> >
> > > d.__cmp__ d.__hash__ d.__repr__ d.iteritems
> >
> > > d.__contains__ d.__init__ d.__setattr__ d.iterkeys
> >
> > > d.__delattr__ d.__iter__ d.__setitem__ d.itervalues
> >
> > > d.__delitem__ d.__le__ d.__str__ d.keys
> >
> > > d.__doc__ d.__len__ d.clear d.pop
> >
> > > d.__eq__ d.__lt__ d.copy d.popitem
> >
> > > d.__ge__ d.__ne__ d.fromkeys d.setdefault
> >
> > > d.__getattribute__ d.__new__ d.get d.update
> >
> > > d.__getitem__ d.__reduce__ d.has_key d.values
> >
> > Then the second thing you might want to get - WingIDE (are you coming to
> > PyCon? Wingware is giving away pro licenses to anyone who participates
> in a
> > sprint;) --- Probably Eclipse would help here equivalently, but I
> didn't
> > have too much happiness using eclipse w/ python (so I use Wing)...
> >
> > Look at gluon/sql.py, class SQLDB(SQLStorage)
> >
> > _instances={}
> >
> > > And, furthermore, if I have db1, db2, ...
> > > len(SQLDB._instances) == 1 (???)
> >
> > I think the naming is unfortunate here. It is completely reasonable to
> read
> > "SQLDB._instances" and expect you are looking at the number of database
> > instances. Unfortunately, this is not what this gives you.
> >
> > This says you have only one SQLDB thread. You want to look at the
> number
> > of connections that thread has, e.g.
> >
> > In [21]: SQLDB._instances.keys()
> > Out[21]: [4208]
> >
> > In [22]: len(SQLDB._instances[4208])
> > Out[22]: 2
> >
> > So you want something like:
> >
> > In [25]: for instance in SQLDB._instances.keys():
> > ....: len(SQLDB._instances[instance])
> > ....: pass
> > ....:
> > Out[25]: 2
> >
> > A better choice of name for this would maybe be: SQLDB._threads
> >
> > Then you would be reading things like:
> >
> > len(SQLDB._threads.keys()) to say "how many threads have open
> databases?
> > (which reads correctly)
> > and len(SQLDB_treads[thread_n]) to say "how many open databases does
> > thread_n have?
> >
> > and len(db2._threads.keys()) to say "how many threads have db2 open?
> >
> > I'll talk with Massimo about renaming this. As it is, it's an
> "internal"
> > (underscore) variable, so backward compatibility should not be an issue.
> > There's already a _threads list in wsgiserver, and this is a dict (you
> can
> > return the SQLDB objects for a thread...
> >
> > I think we can find some name that makes this clear.
> >
> > In the meantime, I hope this helps.
> >
> > Regards,
> > Yarko
> >
> > P.S. --- I think I like this name; see what you think:
> >
> > In [25]: for thread in SQLDB._by_thread.keys():
> > ....: len(SQLDB._by_thread[thread])
> > ....: pass
> > ....:
> > Out[25]: 2
> >
> >
> >
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"web2py Web Framework" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---