A quel point est-il mauvais dans Lua 5.1 de ne jamais laisser une coroutine se terminer correctement? En d'autres termes, si une coroutine cède mais que je ne la reprends jamais, cela laisse-t-il beaucoup d'état qui traîne jusqu'à la fin du programme?Abandonner les coroutines
cor=coroutine.wrap(somefunc)
while true do
done=cor()
if done then -- coroutine exited with "return true"
break
else -- coroutine yielded with "coroutine.yield(false)"
if some_condition then break end
end
end
function somefunc()
-- do something
coroutine.yield(false)
-- do some more
return true
end
Selon some_condition dans le pseudocode ci-dessus, la coroutine pourrait ne jamais être repris, et donc peut-être jamais correctement « fin ». Puis-je faire cela à des dizaines de coroutines sans avoir à m'inquiéter? Est-il prudent de laisser des corépondions dans cet état? Est-ce cher?
Je ne sais pas du tout Lua, mais si je dans vos chaussures, je veux savoir le plus question: comment pouvez-vous déterminer si vous perdez de la mémoire (ou tout ce qui vous intéresse lorsque vous dites "cher")? S'il y a un outil, par exemple, vous pouvez vous-même répondre à la question de façon empirique. –
Cela fonctionnerait pour évaluer l'élément de consommation de mémoire, mais je me demandais aussi si c'était sûr. C'est à dire. cela créerait-il plus tard des problèmes imprévus? – proFromDover