@@ -80,7 +80,7 @@ class Connection : public ObjectWrap {
80
80
81
81
// static function called by libev as callback entrypoint
82
82
static void
83
- io_event (EV_P_ ev_io *w , int revents)
83
+ io_event (uv_poll_t * w, int status , int revents)
84
84
{
85
85
TRACE (" Received IO event" );
86
86
Connection *connection = static_cast <Connection*>(w->data );
@@ -193,8 +193,6 @@ class Connection : public ObjectWrap {
193
193
THROW (" Values must be an array" );
194
194
}
195
195
196
- Handle <Value> params = args[1 ];
197
-
198
196
Local<Array> jsParams = Local<Array>::Cast (args[1 ]);
199
197
int len = jsParams->Length ();
200
198
@@ -234,8 +232,9 @@ class Connection : public ObjectWrap {
234
232
return Undefined ();
235
233
}
236
234
237
- ev_io read_watcher_;
238
- ev_io write_watcher_;
235
+ uv_poll_t read_watcher_;
236
+ uv_poll_t write_watcher_;
237
+
239
238
PGconn *connection_;
240
239
bool connecting_;
241
240
Connection () : ObjectWrap ()
@@ -244,9 +243,9 @@ class Connection : public ObjectWrap {
244
243
connecting_ = false ;
245
244
246
245
TRACE (" Initializing ev watchers" );
247
- ev_init (&read_watcher_, io_event);
246
+ // ev_init(&read_watcher_, io_event);
248
247
read_watcher_.data = this ;
249
- ev_init (&write_watcher_, io_event);
248
+ // ev_init(&write_watcher_, io_event);
250
249
write_watcher_.data = this ;
251
250
}
252
251
@@ -309,7 +308,7 @@ class Connection : public ObjectWrap {
309
308
{
310
309
if (PQflush (connection_) == 1 ) {
311
310
TRACE (" Flushing" );
312
- ev_io_start (EV_DEFAULT_ &write_watcher_);
311
+ // ev_io_start(EV_DEFAULT_ &write_watcher_);
313
312
}
314
313
}
315
314
@@ -354,9 +353,13 @@ class Connection : public ObjectWrap {
354
353
355
354
PQsetNoticeProcessor (connection_, NoticeReceiver, this );
356
355
356
+ uv_poll_init (uv_default_loop (), &read_watcher_, fd);
357
+ uv_poll_init (uv_default_loop (), &write_watcher_, fd);
358
+
357
359
TRACE (" Setting watchers to socket" );
358
- ev_io_set (&read_watcher_, fd, EV_READ);
359
- ev_io_set (&write_watcher_, fd, EV_WRITE);
360
+ // uv_poll_start(uv_poll_t* handle, int events, uv_poll_cb cb)
361
+ // ev_io_set(&read_watcher_, fd, EV_READ);
362
+ // ev_io_set(&write_watcher_, fd, EV_WRITE);
360
363
361
364
connecting_ = true ;
362
365
StartWrite ();
@@ -453,7 +456,7 @@ class Connection : public ObjectWrap {
453
456
HandleErrorResult (result);
454
457
break ;
455
458
case PGRES_COMMAND_OK:
456
- case PGRES_EMPTY_QUERY:
459
+ case PGRES_EMPTY_QUERY:
457
460
EmitCommandMetaData (result);
458
461
break ;
459
462
default :
@@ -620,25 +623,29 @@ class Connection : public ObjectWrap {
620
623
void StopWrite ()
621
624
{
622
625
TRACE (" Stoping write watcher" );
623
- ev_io_stop (EV_DEFAULT_ &write_watcher_);
626
+ // ev_io_stop(EV_DEFAULT_ &write_watcher_);
627
+ uv_poll_stop (&write_watcher_);
624
628
}
625
629
626
630
void StartWrite ()
627
631
{
628
632
TRACE (" Starting write watcher" );
629
- ev_io_start (EV_DEFAULT_ &write_watcher_);
633
+ uv_poll_start (&write_watcher_, UV_WRITABLE, io_event);
634
+ // ev_io_start(EV_DEFAULT_ &write_watcher_);
630
635
}
631
636
632
637
void StopRead ()
633
638
{
634
639
TRACE (" Stoping read watcher" );
635
- ev_io_stop (EV_DEFAULT_ &read_watcher_);
640
+ // ev_io_stop(EV_DEFAULT_ &read_watcher_);
641
+ uv_poll_stop (&read_watcher_);
636
642
}
637
643
638
644
void StartRead ()
639
645
{
640
646
TRACE (" Starting read watcher" );
641
- ev_io_start (EV_DEFAULT_ &read_watcher_);
647
+ // ev_io_start(EV_DEFAULT_ &read_watcher_);
648
+ uv_poll_start (&read_watcher_, UV_READABLE, io_event);
642
649
}
643
650
// Converts a v8 array to an array of cstrings
644
651
// the result char** array must be free() when it is no longer needed
0 commit comments