[#11952] NORETURN — "Nobuyoshi.Nakada" <nobu.nakada@...>

なかだです。

24 messages 2001/01/10
[#11956] Re: NORETURN — WATANABE Hirofumi <eban@...> 2001/01/10

わたなべです.

[#11957] Re: NORETURN — matz@... (Yukihiro Matsumoto) 2001/01/10

まつもと ゆきひろです

[#11958] Re: NORETURN — WATANABE Hirofumi <eban@...> 2001/01/10

わたなべです.

[#11959] CVS branches (Re: Re: NORETURN) — matz@... (Yukihiro Matsumoto) 2001/01/10

[#12087] string#index, gsub, []= のバグ? — Beyond <beyond@...>

18 messages 2001/01/27
[#12091] Re: string#index, gsub, []= のバグ? — matz@... (Yukihiro Matsumoto) 2001/01/27

まつもと ゆきひろです

[ruby-dev:12121] Re: [patch] mswin32 system()

From: "Nobuyoshi.Nakada" <nobu.nakada@...>
Date: 2001-01-29 04:19:12 UTC
List: ruby-dev #12121
なかだです。

At Mon, 29 Jan 2001 04:28:22 +0900
"U.Nakamura" <usa@osb.att.ne.jp> wrote:
> で、VC++のランタイムのソースを追っかけた限りでは、spawnvpe()
> がやってることは基本的には同じなので、現状も同じはずです。

  spawnvpe() を _P_NOWAIT で呼んで rb_syswait() で待つようにすれば、
win32 でもいけそうな気がしてきました。なんとなく。というか、fork&exec の
部分をシステム依存として条件コンパイルするようにすれば、ほぼ unix 用のコ
ードと共通にできそうな気も。

> 手元にある資料(C++Builder5付属のAPI Reference)によれば、
> 
> | The handles for both the process and the main thread must be
> | closed through calls to CloseHandle. If these handles are not
> | needed, it is best to close them immediately after the process
> | is created. 
> 
> ということなので、必須だと思われます。

  これは私の勘違いでした。hThread は spwan() の中でクローズしてしまって
るので、waitpid() では関係ないですね。

> うーん、未だにいろいろわかってなくって恐縮なのですが、
> RUBY_CRITICAL()が必要なパターンというのはどういうもの
> なのでしょう?

  割り込みで中断するとまずいところです。API だけでなく、内部で critical 
section を使うようなランタイムルーチンも多いので、そういうのも必要でしょ
う。

> APIを呼ぶときは必ず? だとするとVC++のランタイムがAPIを
> 呼んでる場合は...

  I/O 関係はだいたい TRAP_BEGIN..TRAP_END で囲まれてるので、カバーしてる
と思います。それと malloc()/free() も大丈夫なはずです。

-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread