diff options
| author | fukachan <fukachan> | 2003-04-12 15:20:01 +0000 |
|---|---|---|
| committer | fukachan <fukachan> | 2003-04-12 15:20:01 +0000 |
| commit | 18caa6a13bd70d87d2a03180bf77155cd9361130 (patch) | |
| tree | becf04d0e79354d0b5af3bfea35eb3cecd360649 /fml/doc/ja/tutorial | |
| parent | 380ed4eaac0518cadb42ac39862735e2d55a6dad (diff) | |
| download | fml8-18caa6a13bd70d87d2a03180bf77155cd9361130.tar.gz fml8-18caa6a13bd70d87d2a03180bf77155cd9361130.tar.bz2 fml8-18caa6a13bd70d87d2a03180bf77155cd9361130.zip | |
add lock overview and todo
Diffstat (limited to 'fml/doc/ja/tutorial')
| -rw-r--r-- | fml/doc/ja/tutorial/book.sgml | 7 | ||||
| -rw-r--r-- | fml/doc/ja/tutorial/include/chapters.ent | 3 | ||||
| -rw-r--r-- | fml/doc/ja/tutorial/internals/lock.sgml | 77 |
3 files changed, 84 insertions, 3 deletions
diff --git a/fml/doc/ja/tutorial/book.sgml b/fml/doc/ja/tutorial/book.sgml index 4a7926d6..df46d104 100644 --- a/fml/doc/ja/tutorial/book.sgml +++ b/fml/doc/ja/tutorial/book.sgml @@ -2,7 +2,7 @@ This is an sgml using DocBook dtd. Use sgmltools version 2.0.x or above to generate various output formats. -$FML: book.sgml,v 1.52 2003/03/09 08:29:09 fukachan Exp $ +$FML: book.sgml,v 1.53 2003/03/12 00:18:29 fukachan Exp $ --> <!doctype book public "-//FML//DTD DocBook V3.1-Based Extension//EN" [ @@ -155,8 +155,11 @@ $FML: book.sgml,v 1.52 2003/03/09 08:29:09 fukachan Exp $ <!-- フック --> &chapter.hook; - <!-- その他 --> + <!-- バーチャルドメイン --> &chapter.virtual; + + <!-- その他 --> + &chapter.lock; &chapter.db; &chapter.db.thread; &chapter.dbms; diff --git a/fml/doc/ja/tutorial/include/chapters.ent b/fml/doc/ja/tutorial/include/chapters.ent index 15ae12d3..b25425ff 100644 --- a/fml/doc/ja/tutorial/include/chapters.ent +++ b/fml/doc/ja/tutorial/include/chapters.ent @@ -1,5 +1,5 @@ <!-- - $FML: chapters.ent,v 1.66 2003/03/09 08:29:10 fukachan Exp $ + $FML: chapters.ent,v 1.67 2003/03/12 00:18:30 fukachan Exp $ --> <!entity versin "1.1"> @@ -129,6 +129,7 @@ <!entity chapter.config.cf SYSTEM "internals/config.cf.sgml"> <!entity chapter.restriction SYSTEM "internals/restriction.sgml"> <!entity chapter.credential SYSTEM "internals/credential.sgml"> +<!entity chapter.lock SYSTEM "internals/lock.sgml"> <!entity chapter.virtual SYSTEM "virtual/chapter.sgml"> diff --git a/fml/doc/ja/tutorial/internals/lock.sgml b/fml/doc/ja/tutorial/internals/lock.sgml new file mode 100644 index 00000000..4a28c7f8 --- /dev/null +++ b/fml/doc/ja/tutorial/internals/lock.sgml @@ -0,0 +1,77 @@ +<!-- + $FML$ +--> + + +<chapter id="lock"> + <title> + ロック + </title> + + +<sect1 id="lock.overview"> + <title> + ロックの概要 + </title> + +<para> +ながらく giant lock だったが、2002/03 に giant lock をなくした。 +</para> + +<para> +Mail::Delivery 関連はメンバーリストにアクセスするので、いろいろありそう。 +でも、Mail::Delivery::Queue は見るだけ (mailq コマンド)か、並列操作可 +能なものだけなので、ロックは考えなくて良いはずです。 +</para> + +<para> +一方、Mail::Delivery::SMTP の操作の際にはメンバーリストのロックが必要です。 +現在は、 +Mail::Delivery::SMTP を呼び出す FML のクラス( +実は FML::Send と FML::Process::Delivery の2箇所しかない +)がロック処理をしています。 +</para> + +<para> +そして、write lock とは限らないが、一般に map を使うモジュールには +ロックが必要です。write が必要とは限りません。 +たとえば +FML/Command/UserControl.pm +や +FML/Command/Auth.pm +には write lock が必要だが、 +FML/Credential.pm +には read lock だけでよさそう。 +</para> + +</sect1> + + +<sect1 id="lock.todo"> + <title> + TODO + </title> + +<para> +*_maps をよぶまえには MUTEX ロックをする。 +いや、やりすぎかもしれんが +</para> + +<para> +メンバーリストへ IO::Adapter をかます時に、 +READ,WRITE LOCK がほしい。 +<footnote> +<para> +READ ロックは不要か?いや、だめだろ +chaddr の途中で sleep したら敗けやから;) +</para> +</footnote> +perl thread をつかえばできるけど、 +汎用的な実装はかなりむつかしいぽい;) +</para> +</para> + +</sect1> + + +</chapter> |
