iTunesとHyperThreading

相変わらず抽象度の低いネットワークプログラミングが続いているので仕事ネタは休止中。Javaでの、それも先日書いたnioを使用したネットワークプログラミングなので楽しいし、ネタ満載なのだがあまりに業務依存しているのでここでは書けない。(長く、それも"はてな"で書いていればいつかはこうなると思っていたのだが、最近はきな臭いアクセスログが多いので、ここに書けなくなる原因を自ら作りたくない、というのもある。自分の所属している組織のドメイン名が、もろアクセスログに記録されているのは、監視されているようで恐い。)

12/19の日記で、iTunesによるリッピングが上手くいかないと書いたが、原因が判明した。以前にも書いたが、私のPCはIntel Xeonプロセッサが2基搭載されており、常時HyperThreadingがOnの状態である(O/Sからはプロセサが4つあるように見える)のだが、以前購入したことを書いた、PanasonicのマルチドライブとiTunesHyperThreadingで使用した時にだけ、iTunesの異常終了が発生するようだ。というのも、先日もCDを取り込もうと思い、iTunesを使用していたのだがまた異常終了するので、ふと思ってWindowsXPのタスクマネジャから、関係するCPUを1基に絞ってみたのだが、そうするとあら不思議、iTunesはその後一度もリッピング&エンコードに失敗することは無かったのである。

以前にも書いたが、ISOイメージを仮想ドライブでマウントした場合には問題は発生しないし、BIOSの設定を変えて、HyperThreadingをOffにした、普通のSMP状態では問題が出ないことを確認しているので、これは間違いなくiTunes又はPanasonicのマルチドライブ、又は双方がHyperThreadingに対応していないと考えるべきだろう。iTunesはタスクマネジャで見るかぎりはマルチスレッドアプリケーションであり、マルチドライブのドライバとの間で何か、リソースのレースコンディションが発生しているのだろうか。(ひょっとして、これはFAQなのか?)

いずれにせよ、解決策が無い以上、iTunesHyperThreading状態では使わないことにしよう。