[sqlalchemy] No import in function and method = thread firendly

2010-05-02 Thread christiandemo...@gmail.com

Hi again,

I understand all!

SqlAlchemy and MySQLdb don t respect this rule 16.2.9
http://docs.python.org/library/threading.html#threaded-imports

Why? :(

--
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalch...@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.



Re: [sqlalchemy] No import in function and method = thread firendly

2010-05-02 Thread Michael Bayer
Where do you see SQLAlchemy spawning any threads ?Its the responsibility of 
the threaded application to make sure all imports occur before threads are 
spawned. The documentation you refer to states as much.




On May 2, 2010, at 8:34 AM, christiandemo...@gmail.com wrote:

 Hi again,
 
 I understand all!
 
 SqlAlchemy and MySQLdb don t respect this rule 16.2.9
 http://docs.python.org/library/threading.html#threaded-imports
 
 Why? :(
 
 -- 
 You received this message because you are subscribed to the Google Groups 
 sqlalchemy group.
 To post to this group, send email to sqlalch...@googlegroups.com.
 To unsubscribe from this group, send email to 
 sqlalchemy+unsubscr...@googlegroups.com.
 For more options, visit this group at 
 http://groups.google.com/group/sqlalchemy?hl=en.
 

-- 
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalch...@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.



Re: [sqlalchemy] No import in function and method = thread firendly

2010-05-02 Thread Michael Bayer
correction, it doesn't even say that.  All it says regarding deadlocks is that 
an import shouldn't spawn a thread.   SQLAlchemy does not spawn any threads 
(pretty sure MySQLdb doesn't, either).


On May 2, 2010, at 11:28 AM, Michael Bayer wrote:

 Where do you see SQLAlchemy spawning any threads ?Its the responsibility 
 of the threaded application to make sure all imports occur before threads are 
 spawned. The documentation you refer to states as much.
 
 
 
 
 On May 2, 2010, at 8:34 AM, christiandemo...@gmail.com wrote:
 
 Hi again,
 
 I understand all!
 
 SqlAlchemy and MySQLdb don t respect this rule 16.2.9
 http://docs.python.org/library/threading.html#threaded-imports
 
 Why? :(
 
 -- 
 You received this message because you are subscribed to the Google Groups 
 sqlalchemy group.
 To post to this group, send email to sqlalch...@googlegroups.com.
 To unsubscribe from this group, send email to 
 sqlalchemy+unsubscr...@googlegroups.com.
 For more options, visit this group at 
 http://groups.google.com/group/sqlalchemy?hl=en.
 
 
 -- 
 You received this message because you are subscribed to the Google Groups 
 sqlalchemy group.
 To post to this group, send email to sqlalch...@googlegroups.com.
 To unsubscribe from this group, send email to 
 sqlalchemy+unsubscr...@googlegroups.com.
 For more options, visit this group at 
 http://groups.google.com/group/sqlalchemy?hl=en.
 

-- 
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalch...@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.



Re: [sqlalchemy] No import in function and method = thread firendly

2010-05-02 Thread christiandemo...@gmail.com

Hello Michael,
Thx for answer.

Of course, there is no thread in mysqldb
but there is import in function connect line 73 of __init__.py
and line 128 to 132 of connections.py in method __init__(self, *args, 
**kwargs):


So when i use connect function in my thread, it blocks because it 
encounters the import of the library.
I rework mysqldb files, i move import out of functions and my thread 
program which use mysqldb works : no deadlock.


I tried to do the same with sqlalchemy library but it s too hard, i  
failed. So i can only use mysqldb in my thread though i want to use 
sqlalchemy which is better to manipulate db.



correction, it doesn't even say that.  All it says regarding deadlocks is that 
an import shouldn't spawn a thread.   SQLAlchemy does not spawn any threads 
(pretty sure MySQLdb doesn't, either).


On May 2, 2010, at 11:28 AM, Michael Bayer wrote:

   

Where do you see SQLAlchemy spawning any threads ?Its the responsibility of 
the threaded application to make sure all imports occur before threads are 
spawned. The documentation you refer to states as much.




On May 2, 2010, at 8:34 AM, christiandemo...@gmail.com wrote:

 

Hi again,

I understand all!

SqlAlchemy and MySQLdb don t respect this rule 16.2.9
http://docs.python.org/library/threading.html#threaded-imports

Why? :(

--
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalch...@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

   

--
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalch...@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

 
   


--
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalch...@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.



Re: [sqlalchemy] No import in function and method = thread firendly

2010-05-02 Thread christiandemo...@gmail.com

Hi

All it says regarding deadlocks is that an import shouldn't spawn a thread

Can you explain me why import math (whick don t spawn a thread) block this thread (only 
one ok appear in terminal)?
When i remove import math, ok appears continuously in term.
I don t understand

class SyncTopAppel(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
self.running = False
def run(self):
self.running = True
while self.running:
print ok
import math
time.sleep(1)
def stop(self):
self.running = False


All it says regarding deadlocks is that an import shouldn't spawn a threa


--
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalch...@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.



Re: [sqlalchemy] No import in function and method = thread firendly

2010-05-02 Thread christiandemo...@gmail.com

Ok i found this subject which explain why.
http://www.mail-archive.com/python-...@python.org/msg24747.html

The deadlock happens because strptime has an import inside it, and
recursive imports are not allowed in different threads.

This situation is well known, found a lot of references to this
import-thread-import problem in discussions and previous bugs (i.e.:
http://bugs.python.org/issue683658).

I'm not sure how anyone could tell more.  There are some locks and you're
staring at a deadlock.  This isn't rare in threaded programs, alas.  Are you
by any chance spawning and executing a thread as a side-effect of doing an
import, where the spawned thread itself does an import and the spawning code
waits for the spawned thread to finish?  If so, the spawning thread would
wait forever on whatever gimmick it's using to wait for the spawned thread
to finish, and the spawned thread would wait forever for the global import
lock to get released (which can't happen, because the global import lock is
waiting for the spawning thread to release it, but the spawning thread is
waiting for the spawned thread to finish).  Or, more simply, never spawn a
thread as a side-effect of importing.

Sry for inconvenience
Chris


correction, it doesn't even say that.  All it says regarding deadlocks is that 
an import shouldn't spawn a thread.   SQLAlchemy does not spawn any threads 
(pretty sure MySQLdb doesn't, either).


On May 2, 2010, at 11:28 AM, Michael Bayer wrote:

   

Where do you see SQLAlchemy spawning any threads ?Its the responsibility of 
the threaded application to make sure all imports occur before threads are 
spawned. The documentation you refer to states as much.




On May 2, 2010, at 8:34 AM, christiandemo...@gmail.com wrote:

 

Hi again,

I understand all!

SqlAlchemy and MySQLdb don t respect this rule 16.2.9
http://docs.python.org/library/threading.html#threaded-imports

Why? :(

--
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalch...@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

   

--
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalch...@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

 
   


--
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalch...@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.