Korrekte Verwendung von HandleScope in Asynchronous Addon

8

Ich schreibe ein asynchrones Node-Addon, aber ich habe Mühe, herauszufinden, ob ich ein HandleScope in der "After" -Funktion verwenden muss, die den JavaScript-Callback des Clients aufruft. Ich habe Beispiele mit und ohne neue Bereiche gesehen, aber nie eine Erklärung warum. Hier ist ein Beispiel:

%Vor%

Benötigen / wollen Sie ein HandleScope, wenn Sie den Rückruf anrufen?
Was passiert mit argv im Beispiel, wenn Sie ein neues HandleScope verwenden?

    
snowballhg 22.05.2013, 20:44
quelle

1 Antwort

1

String::New("foo") wird etwas auf dem Heap zuweisen und ein Handle zurückgeben, so dass Sie den Speicher freigeben müssen, auf den dieses Handle verweist. Wenn Sie sie an eine% co_de anfügen, wird% v8 das für Sie tun, sobald alle Referenzen auf Null gezählt sind.

  

Lokale Handles werden auf einem Stapel gehalten und bei Bedarf gelöscht   Destruktor wird aufgerufen. Die Lebensdauer dieser Griffe wird durch a bestimmt   handle scope, der oft zu Beginn einer Funktion erstellt wird   Anruf. Wenn der Zugriffsbereich gelöscht wird, ist der Garbage Collector frei   die Zuweisung der Objekte, auf die zuvor von Handles in der Referenz verwiesen wurde   Handle-Bereich, sofern sie nicht mehr von JavaScript zugänglich sind   oder andere Griffe.

Ссылка

    
exebook 24.01.2014 12:29
quelle

Tags und Links