with: Difference between revisions
Lou Montana (talk | contribs) m (Text replacement - "<code>([^ ]*)\[\[([a-zA-Z][a-zA-Z0-9_]+)\]\]([^ ]*)<\/code>" to "<code>$1$2$3</code>") |
Lou Montana (talk | contribs) m (Text replacement - "\{\{cc\|([^} ]*)\}\}" to "// $1") |
||
Line 35: | Line 35: | ||
[[currentNamespace]] [[isEqualTo]] [[missionNamespace]] | [[currentNamespace]] [[isEqualTo]] [[missionNamespace]] | ||
]; | ]; | ||
// result [true, false] | |||
[[sleep]] 0.05; | [[sleep]] 0.05; // <-- small suspension | ||
[[systemChat]] [[str]] [ | [[systemChat]] [[str]] [ | ||
[[currentNamespace]] [[isEqualTo]] [[uiNamespace]], | [[currentNamespace]] [[isEqualTo]] [[uiNamespace]], | ||
[[currentNamespace]] [[isEqualTo]] [[missionNamespace]] | [[currentNamespace]] [[isEqualTo]] [[missionNamespace]] | ||
]; | ]; | ||
// result [false, true] <-- switching | |||
}; | }; | ||
}; | }; | ||
Line 56: | Line 56: | ||
[[currentNamespace]] [[isEqualTo]] [[missionNamespace]] | [[currentNamespace]] [[isEqualTo]] [[missionNamespace]] | ||
]; | ]; | ||
// result [true, false] | |||
[[sleep]] 0.05; | [[sleep]] 0.05; // <-- small suspension | ||
[[systemChat]] [[str]] [ | [[systemChat]] [[str]] [ | ||
[[currentNamespace]] [[isEqualTo]] [[uiNamespace]], | [[currentNamespace]] [[isEqualTo]] [[uiNamespace]], | ||
[[currentNamespace]] [[isEqualTo]] [[missionNamespace]] | [[currentNamespace]] [[isEqualTo]] [[missionNamespace]] | ||
]; | ]; | ||
// result [true, false] <-- NO switching | |||
}; | }; | ||
}; | }; |
Revision as of 11:26, 12 May 2022
Description
- Description:
- Creates a With Type that is used inside a do construct in order to execute code inside a given namespace.
- Problems:
- When used in a do-construct in scripts with allowed suspension, a namespace switching might unexpectedly occur inside some scopes (for, if, try, call) started in a scheduled environment after small suspension if with was not the main scope; however, the issue does not arise if with is used in the parent scope:
namespace switch risk namespace switch safe [] spawn { with uiNamespace do { for "_i" from 1 to 1 do { systemChat str [ currentNamespace isEqualTo uiNamespace, currentNamespace isEqualTo missionNamespace ]; // result [true, false] sleep 0.05; // <-- small suspension systemChat str [ currentNamespace isEqualTo uiNamespace, currentNamespace isEqualTo missionNamespace ]; // result [false, true] <-- switching }; }; };
with uiNamespace do { [] spawn { for "_i" from 1 to 1 do { systemChat str [ currentNamespace isEqualTo uiNamespace, currentNamespace isEqualTo missionNamespace ]; // result [true, false] sleep 0.05; // <-- small suspension systemChat str [ currentNamespace isEqualTo uiNamespace, currentNamespace isEqualTo missionNamespace ]; // result [true, false] <-- NO switching }; }; };
- Groups:
- Program FlowNamespaces
Syntax
Examples
- Example 1:
_myWithType = with uiNamespace;
- Example 2:
with missionNamespace do {global = global + 1};
Additional Information
Notes
-
Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note