[#23717] error at TestDRbMServer (test/drb) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>

山本です。どうしても原因がわからないので、報告だけ・・・

18 messages 2004/06/19
[#23718] Re: error at TestDRbMServer (test/drb) — nobu.nakada@... 2004/06/19

なかだです。

[#23719] Re: error at TestDRbMServer (test/drb) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/06/19

山本です。

[#23720] Re: error at TestDRbMServer (test/drb) — nobu.nakada@... 2004/06/19

なかだです。

[#23724] Re: error at TestDRbMServer (test/drb) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/06/19

山本です。

[#23762] Ruby 1.8.2 to be released. — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

40 messages 2004/06/23

[#23784] URI() — Tanaka Akira <akr@...17n.org>

前から思っていたのですが、URI.parse("http://...") を URI("http://...")

19 messages 2004/06/25

[ruby-dev:23712] Re: Shell.Application on WIN32OLE

From: "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
Date: 2004-06-17 10:18:38 UTC
List: ruby-dev #23712
山本です。

arton <artonx@yahoo.co.jp> wrote:
(2004/06/16 23:59)

>とりあえず、[ruby-dev:23693]の最初のパッチのCoFreeUnusedLibrayの呼び出し
>を消すという対処が良いのではないでしょうか。この場合の問題点は不要となっ
>たライブラリが開放されないためにプロセスメモリーが大きいままとなることで
>すが、それ以外には特にないはずです。

他にも CoFreeUnusedLibraries() を呼んでいるところがあるそうなので、
そちらも削りました。

cvs diff -u -wb -p win32ole.c (in directory E:\ruby-cvs\ruby\ext\win32ole\)
Index: win32ole.c
===================================================================
RCS file: /var/cvs/src/ruby/ext/win32ole/win32ole.c,v
retrieving revision 1.22
diff -u -w -b -p -r1.22 win32ole.c
--- win32ole.c	8 May 2004 03:54:51 -0000	1.22
+++ win32ole.c	16 Jun 2004 21:41:09 -0000
@@ -67,7 +67,6 @@
             (x) = 0;\
         }\
     }\
-    CoFreeUnusedLibraries();\
 }
 
 #define OLEData_Get_Struct(obj, pole) {\
@@ -5341,7 +5340,6 @@ ole_event_free(poleev)
             pcp->lpVtbl->Unadvise(pcp, poleev->pEvent->m_dwCookie);
             OLE_RELEASE(pcp);
         }
-        CoFreeUnusedLibraries();
     }
 }


>MULTITHREADEDで、CoInitializeExを呼び出すのは賛成できません。なぜならば、
>Win32OLEの実装が、MTAを意識していないからです。

msdn magagine Sep 2000 no.6 (日本版)の「COMとスレッド」を読んだのですが、
STAクライアントとMTAクライアントの差は、サーバと同じスレッドモデルなら
高速というだけのようでした。(異なるスレッドモデルだと、プロキシとマーシャラが介在する)

STAクライアント: スレッドごとにアパートメントが作られ、スレッドはそこに所属
MTAクライアント:プロセスで唯一のアパートメントに複数のスレッドが所属

STAサーバ:一度に一つの要求のみ処理できる
MTAサーバ:一度に複数の要求を処理できる

同期などを考慮すべきなのは MTAサーバであって MTAクライアントではないらしいので、
気にしなくてよさそうだったのですが・・・(付け焼刃の知識なので自信がありません)


In This Thread