Thunk Speicherleck als Ergebnis der Kartenfunktion

8

Ich schreibe ein Multithreaded-Programm, das mvars ziemlich nutzt; In diesem Fall habe ich einen Thread, der periodisch die Liste innerhalb einer Mvar ändert. Leider gibt es ein Thunk-Speicherleck. Es scheint ein Problem zu sein, dass die 'map id' (in echtem Programm verwende ich etwas anderes als id) funktioniert. Ich kann einfach keinen Weg finden, wie ich das vermeiden kann - ich spielte mit 'Seq' ohne Ergebnis. Was ist der richtige Weg, um das Leck zu beheben?

%Vor%     
ondra 08.07.2011, 21:35
quelle

2 Antworten

4

Nach ein paar weiteren Versuchen scheint dieser zu funktionieren:

%Vor%     
ondra 08.07.2011, 22:11
quelle
4

Neben dem Space-Leak kann die frühere Version auch ein "Zeitleck" haben, indem die nicht bewerteten Thunks, die in der Mvar platziert sind, vom empfangenden Thread statt vom sendenden Thread ausgewertet werden und möglicherweise beabsichtigte Parallelität zerstören.

>     
solrize 12.07.2011 15:42
quelle

Tags und Links