spawn: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 84: | Line 84: | ||
<br><br> | <br><br> | ||
Since [[spawn]] creates a new scheduled environment, having an excess of open threads can make the scheduler queue extremely long, significantly increasing the execution time of each thread. (it takes an extremely large amount of threads, though) | Since [[spawn]] creates a new scheduled environment, having an excess of open threads can make the scheduler queue extremely long, significantly increasing the execution time of each thread. (it takes an extremely large amount of threads, though) | ||
</dd> | |||
</dl> | |||
<!-- DISCONTINUE Notes --> | |||
<!-- CONTINUE Notes --> | |||
<dl class="command_description"> | |||
<dd class="notedate">Posted on August 25, 2015 - 13:34 (UTC)</dd> | |||
<dt class="note">[[User:IT07|IT07]]</dt> | |||
<dd class="note"> | |||
Kronzky's point is FALSE for ArmA 3 1.48. You can easily spawn a function that has been created in the same scope like this: | |||
<code>_fnc = { systemChat"WASAAAAAAAAAAAAP" }; [] spawn _fnc; // Works fine</code> | |||
</dd> | </dd> | ||
</dl> | </dl> | ||
<!-- DISCONTINUE Notes --> | <!-- DISCONTINUE Notes --> |
Revision as of 14:34, 25 August 2015
Description
- Description:
- Starts running a new script (SQF). Additional arguments are passed in local _this variable. The new script is running in scheduled environment, spawn does not wait for it to be done, instead spawn returns a Script handle.
- Groups:
- Uncategorised
Syntax
- Syntax:
- Script = arguments spawn code
- Parameters:
- arguments: Any Value
- code: Code
- Return Value:
- Script
Examples
- Example 1:
[] spawn { player globalChat "This is run in parallel."; };
- Example 2:
- There is no guarantee that spawned scripts will be executed in the same order they spawned:
for "_i" from 0 to 100 do { _null = _i spawn { diag_log _this } }
Result: 51,1,2...49,50,0,52,53...100
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
Notes
- Posted on 5 March, 2009
- Kronzky
-
spawn cannot call other local functions on the same scope as itself.
It can, however, call other global functions:_addOne = {TST=TST+1}; TST_addOne = {TST=TST+1}; _add = { TST=TST+1; player sideChat format ["added: %1",TST]; [] call _addOne; player sideChat format ["called local: %1",TST]; [] call TST_addOne; player sideChat format ["called global: %1",TST]; }; TST=0; [] call _add; [] spawn _add;
The call of _addOne from the spawned function does not do anything.
Bottom Section
- Posted on October 21, 2014 - 23:33 (UTC)
- DreadedEntity
-
spawn requires a script handle when used in the 2D editor. (A3)
In scripts and in the debug console, it is not required, but very useful for keeping track of running scripts. Having a script handle also makes it easy to terminate scripts at any time.
Since spawn creates a new scheduled environment, having an excess of open threads can make the scheduler queue extremely long, significantly increasing the execution time of each thread. (it takes an extremely large amount of threads, though)
- Posted on August 25, 2015 - 13:34 (UTC)
- IT07
-
Kronzky's point is FALSE for ArmA 3 1.48. You can easily spawn a function that has been created in the same scope like this:
_fnc = { systemChat"WASAAAAAAAAAAAAP" }; [] spawn _fnc; // Works fine