[sylpheed-jp:10971] Re: [Q] Actionの引数 %f(ファイル名) %F(ファイルリスト)の挙動の違いについて
OOSATO, Kazzrou
kazz @ kk.iij4u.or.jp
2010年 6月 9日 (水) 21:08:50 JST
大里です。
On Wed, 9 Jun 2010 17:13:41 +0900
Hiroyuki Yamamoto <hiro-y @ kcn.ne.jp> wrote:
> > > kazz @ mercury:~$ cat bin/ACTION
> > > #! /bin/bash
> > > sleep ${1}
> > > head -3 ${2}
> > > cat ${2} > /dev/null
> > > exit 0
> > >
> > > こういうスクリプトを書いて
> > > ACTION 1 %f
> > > だと、成功しますが、
> > > ACTION 0 %f
> > > では fetch 対象となるメールが少し多いと落ちます。
> >
> > ざっとソースをチェックしたところ、 gdk_input_add で入出力を捕捉すると
> > ころで、本来であればスレッドのロックを確保しないといけないところで確保
> > していないところがありました。このため、タイミングによって落ちたり落ち
> > なかったりするのではないかと思われます。とりあえず対策してみます。
>
> 直接的な原因は、タイミングによっては、ダイアログが作成される前に
> 子プロセスからデータを受け取る場合があり、その際に開放処理
> (free_children) が複数回呼び出されてしまい、そこでクラッシュしているよう
> でした。
>
> とりあえずスレッドのロック周りも含めて svn trunk で対策してみましたの
> で、試していただけますか。
ありがとうございます。
リポジトリが subversion に変わったのですね。ちょっと焦りました(^^;
今まで落ちていたような条件で、今度は落ちません。もし、また問題が出る
ようでしたら報告しますが、感触的には大丈夫そうです。
なにをやりたかったかを簡単に説明すると、
「imap で読んでいるメールを選択した分だけローカルに保存したい」
「エクスポート機能ではフォルダ丸ごと吐き出されるので扱い難い」
ということで簡単なスクリプトを書いていました。
もっとも、今回は %F を使っています。ただ、コマンドライン引数のため、
長大な文字列は受け取れないのが実は悩みです。
sylpheed 側では truncate していますか。
--
; kazz
---( end of my signature )---
Sylpheed-jp メーリングリストの案内