Browse Source

Remove eio_warmup. Use ev_ref instead.

v0.7.4-release
Ryan 16 years ago
parent
commit
f56309deee
  1. 3
      src/file.cc
  2. 4
      src/net.cc
  3. 15
      src/node.cc
  4. 1
      src/node.h

3
src/file.cc

@ -34,8 +34,7 @@ using namespace node;
Local<Function> l = Local<Function>::Cast(last_arg); \
callback = new Persistent<Function>(); \
*callback = Persistent<Function>::New(l); \
} \
node::eio_warmup(); \
}
#define CALL_CALLBACK_PTR(req, argc, argv) \
do { \

4
src/net.cc

@ -222,12 +222,10 @@ Connection::Connect (const Arguments& args)
Connection::Resolve(req);
#else
/* For the moment I will do DNS lookups in the eio thread pool. This is
* sub-optimal and cannot handle massive numbers of requests but it is
* quite portable.
* sub-optimal and cannot handle massive numbers of requests.
* In the future I will move to a system using adns or udns:
* http://lists.schmorp.de/pipermail/libev/2009q1/000632.html
*/
eio_warmup();
connection->Attach();
eio_custom( Connection::Resolve
, EIO_PRI_DEFAULT

15
src/node.cc

@ -227,13 +227,6 @@ static void
node_eio_cb (EV_P_ ev_async *w, int revents)
{
int r = eio_poll();
/* returns 0 if all requests were handled, -1 if not, or the value of EIO_FINISH if != 0 */
// XXX is this check too heavy?
// it require three locks in eio
// what's the better way?
if (eio_nreqs () == 0 && eio_nready() == 0 && eio_npending() == 0)
ev_async_stop(EV_DEFAULT_UC_ w);
}
static void
@ -242,12 +235,6 @@ eio_want_poll (void)
ev_async_send(EV_DEFAULT_UC_ &eio_watcher);
}
void
node::eio_warmup (void)
{
ev_async_start(EV_DEFAULT_UC_ &eio_watcher);
}
enum encoding
node::ParseEncoding (Handle<Value> encoding_v)
{
@ -349,6 +336,8 @@ main (int argc, char *argv[])
// start eio thread pool
ev_async_init(&eio_watcher, node_eio_cb);
eio_init(eio_want_poll, NULL);
ev_async_start(EV_DEFAULT_UC_ &eio_watcher);
ev_unref(EV_DEFAULT_UC);
V8::SetFlagsFromCommandLine(&argc, argv, true);
V8::Initialize();

1
src/node.h

@ -29,7 +29,6 @@ do { \
enum encoding {ASCII, UTF8, RAW};
enum encoding ParseEncoding (v8::Handle<v8::Value> encoding_v);
void FatalException (v8::TryCatch &try_catch);
void eio_warmup (void); // call this before creating a new eio event.
class ObjectWrap {
public:

Loading…
Cancel
Save