Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

"select" on multiple Python multiprocessing Queues?

What's the best way to wait (without spinning) until something is available in either one of two (multiprocessing) Queues, where both reside on the same system?

like image 579
cdleary Avatar asked Jul 14 '09 06:07

cdleary


1 Answers

Actually you can use multiprocessing.Queue objects in select.select. i.e.

que = multiprocessing.Queue() (input,[],[]) = select.select([que._reader],[],[]) 

would select que only if it is ready to be read from.

No documentation about it though. I was reading the source code of the multiprocessing.queue library (at linux it's usually sth like /usr/lib/python2.6/multiprocessing/queue.py) to find it out.

With Queue.Queue I didn't have found any smart way to do this (and I would really love to).

like image 129
Jakub Chromiak Avatar answered Sep 19 '22 13:09

Jakub Chromiak