
【Python】dequeは同一スレッドでないと使えない deque mutated during iteration
発生したエラー
1 | RuntimeError: deque mutated during iteration |
原因
pyaudioのコールバック関数を使って拾った音をdequeに保存し、
それをwavファイルに保存するときなどに、
dequeから読みだして書き込んでいる最中に、コールバック関数が
新しい音データをdequeに挿入し、dequeの中身が変わってしまった
場合などに現れます。
解決法
そもそもdequeを使わないのが一番ですが、
copy.deepcopy(<deque>)などを使って値渡ししてあげましょう。