From 8658963df76f12d80ed2311cac889401b7619eb2 Mon Sep 17 00:00:00 2001 From: Jon Moss Date: Thu, 12 Jul 2018 09:41:43 -0400 Subject: [PATCH] src: remove defunct timer_wrap file Unused since the excellent refactoring in 2930bd1317d15d12738a4896c0a6c05700411b47, which also removed `src/timer_wrap.cc` from `node.gyp`. If you try and get at the binding on a v11.0-pre build, you'll get an error, since the file is no longer in the GYP build. ``` Jonathans-MBP:node jon$ ./node -v v11.0.0-pre Jonathans-MBP:node jon$ ./node -e "process.binding('timer_wrap')" internal/bootstrap/loaders.js:81 mod = bindingObj[module] = getBinding(module); ^ Error: No such module: timer_wrap at process.binding (internal/bootstrap/loaders.js:81:36) at [eval]:1:9 at Script.runInThisContext (vm.js:89:20) at Object.runInThisContext (vm.js:286:38) at Object. ([eval]-wrapper:6:22) at Module._compile (internal/modules/cjs/loader.js:689:30) at evalScript (internal/bootstrap/node.js:562:27) at startup (internal/bootstrap/node.js:248:9) at bootstrapNodeJSCore (internal/bootstrap/node.js:595:3) ``` Refs: https://github.com/nodejs/node/pull/20894 --- src/timer_wrap.cc | 152 ---------------------------------------------- 1 file changed, 152 deletions(-) delete mode 100644 src/timer_wrap.cc diff --git a/src/timer_wrap.cc b/src/timer_wrap.cc deleted file mode 100644 index c3962e83eef1eb..00000000000000 --- a/src/timer_wrap.cc +++ /dev/null @@ -1,152 +0,0 @@ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -#include "async_wrap-inl.h" -#include "env-inl.h" -#include "handle_wrap.h" -#include "util-inl.h" - -#include - -namespace node { -namespace { - -using v8::Array; -using v8::Context; -using v8::Function; -using v8::FunctionCallbackInfo; -using v8::FunctionTemplate; -using v8::HandleScope; -using v8::Integer; -using v8::Local; -using v8::Object; -using v8::String; -using v8::Value; - -class TimerWrap : public HandleWrap { - public: - static void Initialize(Local target, - Local unused, - Local context) { - Environment* env = Environment::GetCurrent(context); - Local constructor = env->NewFunctionTemplate(New); - Local timerString = FIXED_ONE_BYTE_STRING(env->isolate(), "Timer"); - constructor->InstanceTemplate()->SetInternalFieldCount(1); - constructor->SetClassName(timerString); - - env->SetTemplateMethod(constructor, "now", Now); - - AsyncWrap::AddWrapMethods(env, constructor); - HandleWrap::AddWrapMethods(env, constructor); - - env->SetProtoMethod(constructor, "start", Start); - - target->Set(timerString, constructor->GetFunction()); - - target->Set(env->context(), - FIXED_ONE_BYTE_STRING(env->isolate(), "setupTimers"), - env->NewFunctionTemplate(SetupTimers) - ->GetFunction(env->context()).ToLocalChecked()).FromJust(); - } - - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - } - - private: - static void SetupTimers(const FunctionCallbackInfo& args) { - CHECK(args[0]->IsFunction()); - CHECK(args[1]->IsFunction()); - auto env = Environment::GetCurrent(args); - - env->set_immediate_callback_function(args[0].As()); - env->set_timers_callback_function(args[1].As()); - - auto toggle_ref_cb = [] (const FunctionCallbackInfo& args) { - Environment::GetCurrent(args)->ToggleImmediateRef(args[0]->IsTrue()); - }; - auto toggle_ref_function = - env->NewFunctionTemplate(toggle_ref_cb)->GetFunction(env->context()) - .ToLocalChecked(); - auto result = Array::New(env->isolate(), 2); - result->Set(env->context(), 0, - env->immediate_info()->fields().GetJSArray()).FromJust(); - result->Set(env->context(), 1, toggle_ref_function).FromJust(); - args.GetReturnValue().Set(result); - } - - static void New(const FunctionCallbackInfo& args) { - // This constructor should not be exposed to public javascript. - // Therefore we assert that we are not trying to call this as a - // normal function. - CHECK(args.IsConstructCall()); - Environment* env = Environment::GetCurrent(args); - new TimerWrap(env, args.This()); - } - - TimerWrap(Environment* env, Local object) - : HandleWrap(env, - object, - reinterpret_cast(&handle_), - AsyncWrap::PROVIDER_TIMERWRAP) { - int r = uv_timer_init(env->event_loop(), &handle_); - CHECK_EQ(r, 0); - } - - static void Start(const FunctionCallbackInfo& args) { - TimerWrap* wrap; - ASSIGN_OR_RETURN_UNWRAP(&wrap, args.Holder()); - - CHECK(HandleWrap::IsAlive(wrap)); - - int64_t timeout = args[0]->IntegerValue(); - int err = uv_timer_start(&wrap->handle_, OnTimeout, timeout, 0); - args.GetReturnValue().Set(err); - } - - static void OnTimeout(uv_timer_t* handle) { - TimerWrap* wrap = static_cast(handle->data); - Environment* env = wrap->env(); - HandleScope handle_scope(env->isolate()); - Context::Scope context_scope(env->context()); - Local ret; - Local args[] = { env->GetNow() }; - do { - ret = wrap->MakeCallback(env->timers_callback_function(), 1, args) - .ToLocalChecked(); - } while (ret->IsUndefined() && - !env->tick_info()->has_thrown() && - env->can_call_into_js()); - } - - static void Now(const FunctionCallbackInfo& args) { - Environment* env = Environment::GetCurrent(args); - args.GetReturnValue().Set(env->GetNow()); - } - - uv_timer_t handle_; -}; - - -} // anonymous namespace -} // namespace node - -NODE_BUILTIN_MODULE_CONTEXT_AWARE(timer_wrap, node::TimerWrap::Initialize)