问题标签 [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 脚本时是否需要处理一些非托管资源?