summaryrefslogtreecommitdiff
path: root/src/handle_wrap.h
diff options
context:
space:
mode:
authorRyan Dahl <ry@tinyclouds.org>2011-07-18 13:45:11 -0700
committerRyan Dahl <ry@tinyclouds.org>2011-07-18 13:47:56 -0700
commit85404c5c558ebbba3aaf27c56d1edccc2061d664 (patch)
tree1115666dc81798d0b6c7d7f80f6d7b7974601fb0 /src/handle_wrap.h
parente5cceffe6a59e6702b373051817f590acdcdf036 (diff)
downloadandroid-node-v8-85404c5c558ebbba3aaf27c56d1edccc2061d664.tar.gz
android-node-v8-85404c5c558ebbba3aaf27c56d1edccc2061d664.tar.bz2
android-node-v8-85404c5c558ebbba3aaf27c56d1edccc2061d664.zip
Move HandleWrap rules to one place
Diffstat (limited to 'src/handle_wrap.h')
-rw-r--r--src/handle_wrap.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/handle_wrap.h b/src/handle_wrap.h
index 2c51799a58..8329da0417 100644
--- a/src/handle_wrap.h
+++ b/src/handle_wrap.h
@@ -3,6 +3,26 @@
namespace node {
+// Rules:
+//
+// - Do not throw from handle methods. Set errno.
+//
+// - MakeCallback may only be made directly off the event loop.
+// That is there can be no JavaScript stack frames underneith it.
+// (Is there anyway to assert that?)
+//
+// - No use of v8::WeakReferenceCallback. The close callback signifies that
+// we're done with a handle - external resources can be freed.
+//
+// - Reusable?
+//
+// - The uv_close_cb is used to free the c++ object. The close callback
+// is not made into javascript land.
+//
+// - uv_ref, uv_unref counts are managed at this layer to avoid needless
+// js/c++ boundary crossing. At the javascript layer that should all be
+// taken care of.
+
class HandleWrap {
public:
static void Initialize(v8::Handle<v8::Object> target);