|
On 28.07.2016 11:50, Dirk Laurie wrote:
You already have that bottleneck, as you already can call functions with side effects in the table constructors. While it isn't guaranteed that these functions are called in order, it is guaranteed that they are called uninterrupted.2016-07-28 10:54 GMT+02:00 Thomas Jericke <tjericke@indel.ch>:so a solution would be to just grantee the most obvious behavior.Not an option. Someday we may see ParaLua, an implementation of Lua that can exploit a parallel computer or a cluster. In that case such a guarantee would force a bottleneck.
For example: local UID = 0 local function ReturnUniqueNumber() UID = UID + 1 return UID end table = { ReturnUniqueNumber(), ReturnUniqueNumber(), ReturnUniqueNumber(), }It is not guaranteed in which order 1, 2, 3 is filled in this table, but it is guaranteed that 1, 2, 3 is somewhere in there. If you call ReturnUniqueNumber in parallel, it is possible that you end up with { 1, 1, 1}
-- Thomas