問題タブ [rhino-dsl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
race-condition - Rhino DSL の競合状態?
私の現在のプロジェクトでは、Boo / Rhino DSLを使用しています (ちなみに、なんて素晴らしいことでしょう)。
コードを掘り下げると、次のコードに出くわしました。
ここでの意図は非常に明確ですengine.Cache
。URL が削除されたときに競合状態から保護する必要があります。ここで私が目にする問題は、実際に保護されているのはStorage.NotifyOnChange
- ではなくへの呼び出しであることCache.Remove
です。
そしてNotifyOnChange
、提供されたデリゲートを取得し、それをイベント ハンドラーとしてそれが作成する「FileWatcher」にアタッチするだけです。したがって、Cache.Remove
ここで書き込みロックを保護する代わりに、FileWatcher の作成を保護し、Cache.Remove
保護されていないままにします。
私は Boo と Rhino の両方に大きな敬意を払っています。または、書き込みロックは本当にデリゲート内に移動する必要がありますか?
ご不明な点がある場合は、NotifyOnChange コードを次に示します。
c# - boo (Rhino DSL) で c# 動的オブジェクトを使用するにはどうすればよいですか?
Rhino DSL を使用しており、動的オブジェクトをスクリプトに渡したい場合、boo コンパイラーは以下の例外をスローします: BCE0019: Boo.Lang.Compiler.CompilerError: 'Percent' is not a member of 'object'.
私のブーコード:
Run メソッドの C# Dsl 基本コード:
- Run メソッドで myDynamicObject を DynamicObject から継承するクラスに設定し、TrySetValue & TryGetValue メソッドをオーバーライドします
.net - Boo コンパイラが「保護されたメモリの読み取りまたは書き込みを試行しました」をスローすることがある
Boo スクリプトをコンパイルするときに、次の例外が発生することがあります。
これは時々、通常はリモート環境でのみ発生します (そこにログしか表示されません)。ローカルで再現してデバッグしたり、メモリ消費を監視したりする方法はまだ見つかっていません。
誰にも手がかりはありますか?Boo スクリプトをコンパイルするときに、管理されていないリソースを処理する必要がありますか?