Gauche:MTとrequire

Gauche:MTとrequire

multi threadな場合にrequire/provideを実装するのが結構ややこしい。

とりあえず、複数のthreadから同じfeatureに対するrequireが来た場合に対応するには:

一見、これだけで何とかなりそうだが、 requireの依存関係が循環しているとデッドロックになる可能性がある。 (もちろんそのような循環関係は不正なんだが、うっかりそのような状態に 入った時に止まるのではなくエラーにするようにしといたほうが良かろう)。


release 0.5.5での解決。load.c参照。


Last modified : 2002/05/25 09:15:08 UTC