diff --git a/src/node.cc b/src/node.cc index 261a28e489..f457a2b4bb 100644 --- a/src/node.cc +++ b/src/node.cc @@ -68,9 +68,6 @@ typedef int mode_t; #endif #include "node_file.h" #include "node_http_parser.h" -#ifdef __POSIX__ -# include "node_signal_watcher.h" -#endif #include "node_constants.h" #include "node_javascript.h" #include "node_version.h" diff --git a/src/node_signal_watcher.cc b/src/node_signal_watcher.cc deleted file mode 100644 index 8cfd272ece..0000000000 --- a/src/node_signal_watcher.cc +++ /dev/null @@ -1,119 +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 "node_signal_watcher.h" -#include - -namespace node { - -using namespace v8; - -Persistent SignalWatcher::constructor_template; -static Persistent callback_symbol; - -void SignalWatcher::Initialize(Handle target) { - HandleScope scope; - - Local t = FunctionTemplate::New(SignalWatcher::New); - constructor_template = Persistent::New(t); - constructor_template->InstanceTemplate()->SetInternalFieldCount(1); - constructor_template->SetClassName(String::NewSymbol("SignalWatcher")); - - NODE_SET_PROTOTYPE_METHOD(constructor_template, "start", SignalWatcher::Start); - NODE_SET_PROTOTYPE_METHOD(constructor_template, "stop", SignalWatcher::Stop); - - target->Set(String::NewSymbol("SignalWatcher"), - constructor_template->GetFunction()); - - callback_symbol = NODE_PSYMBOL("callback"); -} - -void SignalWatcher::Callback(EV_P_ ev_signal *watcher, int revents) { - SignalWatcher *w = static_cast(watcher->data); - - assert(watcher == &w->watcher_); - assert(revents == EV_SIGNAL); - - HandleScope scope; - - Local callback_v = w->handle_->Get(callback_symbol); - if (!callback_v->IsFunction()) { - w->Stop(); - return; - } - - Local callback = Local::Cast(callback_v); - - MakeCallback(w->handle_, callback, 0, NULL); -} - -Handle SignalWatcher::New(const Arguments& args) { - if (!args.IsConstructCall()) { - return FromConstructorTemplate(constructor_template, args); - } - - HandleScope scope; - - if (args.Length() != 1 || !args[0]->IsInt32()) { - return ThrowException(String::New("Bad arguments")); - } - - int sig = args[0]->Int32Value(); - - SignalWatcher *w = new SignalWatcher(sig); - w->Wrap(args.Holder()); - - return args.This(); -} - -Handle SignalWatcher::Start(const Arguments& args) { - HandleScope scope; - SignalWatcher *w = ObjectWrap::Unwrap(args.Holder()); - w->Start(); - return Undefined(); -} - -void SignalWatcher::Start () { - if (!watcher_.active) { - ev_signal_start(EV_DEFAULT_UC_ &watcher_); - ev_unref(EV_DEFAULT_UC); - Ref(); - } -} - -Handle SignalWatcher::Stop(const Arguments& args) { - HandleScope scope; - SignalWatcher *w = ObjectWrap::Unwrap(args.Holder()); - w->Stop(); - return Undefined(); -} - -void SignalWatcher::Stop () { - if (watcher_.active) { - ev_ref(EV_DEFAULT_UC); - ev_signal_stop(EV_DEFAULT_UC_ &watcher_); - Unref(); - } -} - -} // namespace node - -NODE_MODULE(node_signal_watcher, node::SignalWatcher::Initialize) diff --git a/src/node_signal_watcher.h b/src/node_signal_watcher.h deleted file mode 100644 index f46022bd33..0000000000 --- a/src/node_signal_watcher.h +++ /dev/null @@ -1,62 +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. - -#ifndef NODE_SIGNAL_WATCHER_H_ -#define NODE_SIGNAL_WATCHER_H_ - -#include "node.h" -#include "v8.h" -#include "uv-private/ev.h" - -namespace node { - -class SignalWatcher : ObjectWrap { - public: - static void Initialize(v8::Handle target); - - protected: - static v8::Persistent constructor_template; - - SignalWatcher(int sig) : ObjectWrap() { - ev_signal_init(&watcher_, SignalWatcher::Callback, sig); - watcher_.data = this; - } - - ~SignalWatcher() { - ev_signal_stop(EV_DEFAULT_UC_ &watcher_); - } - - static v8::Handle New(const v8::Arguments& args); - static v8::Handle Start(const v8::Arguments& args); - static v8::Handle Stop(const v8::Arguments& args); - - private: - static void Callback(EV_P_ ev_signal *watcher, int revents); - - void Start(); - void Stop(); - - ev_signal watcher_; -}; - -} // namespace node -#endif // NODE_SIGNAL_WATCHER_H_ -