Download List

Sponsored link

Project Description

Ochusha is a so-called 2ch browser based on GTK+.
It is implemented mainly in C/C++ and employs multi-threading so that it runs considerably quickly. We would like to respond to user's request for features.

System Requirements

System requirement is not defined

Released at 2003-12-09 00:01
ochusha 0.4.5.1 (1 files Hide)

Release Notes

version 0.4.5.1 (2003-12-08)
- onigurumaを取り込んだ。
- 最後のタブを閉じた時にフォーカスを強制的に移動するように変更した。
- レスのポップアップに関連するデッドロック問題を解決した。
- スレの表示時に既読レスの末尾までジャンプする機能がより確実に働くよう
に変更した。
- ネットワークアクセス時にCPUを無駄に消費し、その結果GUIのレスポンスが
悪くなっていた問題を解決した。

Changelog

* onigurumaの必要な部分を丸ごとツリーに取り込み、configure時に外部
のonigurumaが見当たらなかった場合には、取り込んだonigurumaを使う
ように変更した。更にconfigureにあった--enable-regexオプションを
捨て、デフォルトでonigurumaを使うようにした。
* 最後のスレのタブもしくはスレ一覧のタブが閉じられたときに、閉じら
れたウィジェットがフォーカスを持っていた場合には、スレ→スレ一覧、
スレ一覧→板一覧というようにフォーカスを強制移動するように変更し
た。
* ポップアップ用のレスのレンダリングに関連するデッドロック問題を解
決した。
* スレの表示時に既読レスの末尾まで自動的にジャンプする機能がより確
実に動作するように変更した。
* ネットワークアクセススレッドを起こすpollingのcallback関数の使い
方を変更し、呼び出されるたびに登録を抹消し、またwaitする前に毎回
登録するように変更した。メインスレッドで実行されるcallback関数は
pthread_cond_wait()で待っているネットワークアクセススレッドを
pthread_cond_signal()で起こすだけのものであったため、実際の処理
はすぐ終わってしまう上、callbackの実行それ自体はI/Oを全く行わな
いものであるから、GLibのメインループに戻ってpollingすると、そこ
でスレッド切り替えが起こってネットワークアクセススレッドが実行さ
れない限りは直前と同じ状態のまま読み込み可能データが存在すること
になり、再度callback関数を呼び出すことになる。つまり、スレッドの
スケジューリングがいつ起こるかという条件によるが、最悪の場合、
GLibのメインループを実行しているメインスレッドはスレッドのタイム
スライスが尽きるまで無駄にループを回っていたことになる。この修正
により、バージョン0.4.5でGUIのレスポンスが極端に悪くなっていた問
題を解決したつもり。