2012-12-03 5 views
6

は私が明らかに(ファロ1.4へhttp://ss3.gemstone.com/ss/RatPack.htmlから、Ratpack)ファロの以前のバージョン用に書かれたパッケージをロードしようとしていました。そこプロセス固有の変数とは何ですか?

私はProjectのためにサポートされていないenvironmentAt:put:に関する非推奨の警告を得ました。

ドキュメントによれば、移動方法はProcessSpecificVariableです。

私の質問は以下のとおりです。

  • 彼らは何ですか?
  • どのように私はそれらを使用していますか?
  • "古い"(非推奨)コードをこの新しいシステムに移植するにはどうすればよいですか?

ありがとう!あなたがここissue tracker

にPSSの議論を見つけることができます

答えて

4

はProcessSpecificVariablesを使用する方法のイゴールによってスニペットです:

と仮定MyProcessSpecificVarはProcessSpecificVariableのサブクラスです。

次に、あなたが行うことができます。

[ MyProcessSpecificVar value: foo. ] fork. 

[ MyProcessSpecificVar value. ] fork. 

など、すなわち古い実装はそれを行うことができますと同じように。あなたは各プロセス固有のVARごとに新しいクラスを作成する必要はありませんので

しかし、新しい実装で、あなたはまた、あなたが使用する場合があります、それのインスタンスを使用することができます。

mykey := MyProcessSpecificVar new. 


[ mykey value ] fork. 
[ mykey value: 10 ] fork. 
+0

その場合だろうに私は後者の変種が必要ですか? 2つの異なるプロセスから 'mykey'を参照するとどうなりますか? –

+1

はmykeyをする場合は、各プロセスは、単に異なるクラスの場合のように、それ自身の価値を持つことになります。このフォームを使用すると、PSVごとに新しいクラスを定義する必要はなく、類似の(本質的な)PSVに同じクラスを使用することができます。 PSVクラスのサンプルについては、:TestLocalVariable –

+0

を参照してください。詳細については 'ProcessSpecificTest'を参照してください。スレッドごとに非常に静的なグローバルオブジェクトを本当に必要としない限り、最初のバージョンはもう意味をなさないと思います。 – camillobruni

関連する問題