人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Windows + ActivePerlでParallel::ForkManagerを動かすとおかしな挙動になるのですがこれは仕様でしょうか?

自分が作ったCPANモジュールがWindowsで動かなくて困っています。
http://search.cpan.org/~dqneo/Amazon-S3-FastUploader-0.05/lib/Amazon/S3/FastUploader.pm

具体的には、並列アップロードをしている最中に突然コンパイルエラーが出ます。
(例えば300個アップロードしていて、100個成功して101個目でエラーが出たりします。もう一度やると今度は別のファイルでエラーが出ます。300個全部成功するときもあります。)
■エラーメッセージの例
URI/_query.pm did not return a true value at C:/Perl/lib/URI/_generic.pm line 3.
Compilation failed in require at C:/Perl/lib/URI/_server.pm line 2.
Compilation failed in require at C:/Perl/lib/URI/http.pm line 3.
Compilation failed in require at (eval 25) line 2.

Perlのスレッドはバグっているという話を聞いたことがありますが、それが原因でしょうか?
非同期処理(あまり詳しくないのですが、AnyEventとか?)にすれば解決できるのでしょうか?

●質問者: DQNEO
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● oil999
●100ポイント

下記のモジュールを追加してみてください。

use threads; 
use threads::shared; 

DQNEOさんのコメント
おお! やってみます!

DQNEOさんのコメント
やってみました。 やはり途中でエラーが出ます。 501 Attempt to reload LWP/Protocol/http.pm aborted. Compilation failed in require : 501 Attempt to reload LWP/Protocol/http.pm aborted. Compilation failed in require

2 ● みかん
●100ポイント

http://it.web-bz.com/term/p/694.php

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ