Skip to content

Commit

Permalink
async-wrap: remove before/after calls in init
Browse files Browse the repository at this point in the history
It doesn't make sense to call before/after callbacks in init to the
parent because they'll be made anyway from MakeCallback. If information
does need to be propagated then it should be done automatically. Will
deal with this if the issue arrises in the future.

PR-URL: #1614
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
  • Loading branch information
trevnorris committed May 5, 2015
1 parent bd42ba0 commit 7dde95a
Showing 1 changed file with 0 additions and 21 deletions.
21 changes: 0 additions & 21 deletions src/async-wrap-inl.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,37 +30,16 @@ inline AsyncWrap::AsyncWrap(Environment* env,
if (!env->async_wrap_callbacks_enabled() && !parent->has_async_queue())
return;

// TODO(trevnorris): Until it's verified all passed object's are not weak,
// add a HandleScope to make sure there's no leak.
v8::HandleScope scope(env->isolate());

v8::Local<v8::Object> parent_obj;

v8::TryCatch try_catch;

// If a parent value was sent then call its pre/post functions to let it know
// a conceptual "child" is being instantiated (e.g. that a server has
// received a connection).
if (parent != nullptr) {
parent_obj = parent->object();
env->async_hooks_pre_function()->Call(parent_obj, 0, nullptr);
if (try_catch.HasCaught())
FatalError("node::AsyncWrap::AsyncWrap", "parent pre hook threw");
}

v8::Local<v8::Value> n = v8::Int32::New(env->isolate(), provider);
env->async_hooks_init_function()->Call(object, 1, &n);

if (try_catch.HasCaught())
FatalError("node::AsyncWrap::AsyncWrap", "init hook threw");

bits_ |= 1; // has_async_queue() is true now.

if (parent != nullptr) {
env->async_hooks_post_function()->Call(parent_obj, 0, nullptr);
if (try_catch.HasCaught())
FatalError("node::AsyncWrap::AsyncWrap", "parent post hook threw");
}
}


Expand Down

0 comments on commit 7dde95a

Please sign in to comment.