call to pypcap in separate thread blocks other threads

Dmitry Teslenko dteslenko at gmail.com
Wed Dec 30 07:34:31 EST 2009


Hello!
I'm making gui gtk application. I'm using pypcap
(http://code.google.com/p/pypcap/) to sniff some network packets.
To avoid gui freezing I put pcap call to another thread.
Pypcap call looks like:

pc = pcap.pcap()
pc.setfilter('tcp')
for ts, pkt in pc:
	spkt = str(pkt)
	...

Sadly, but this call in another thread blocks gtk gui thread anyway.
If I substitute pcap call with something else separate thread don't block
gui thread.

Using another process instead of thead isn't appropriate.

Thread initialization looks like and takes place before gtk.main():

self.__pcap_thread = threading.Thread(target = self.get_city_from_pcap)
self.__pcap_thread.start()

-- 
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing in e-mail?



More information about the Python-list mailing list