@@ -127,7 +127,12 @@ NAN_METHOD(Database::New) {
127127 callback = Local<Function>::Cast (info[pos++]);
128128 }
129129
130- Database* db = new Database ();
130+ #if NODE_MODULE_VERSION > NODE_9_0_MODULE_VERSION
131+ uv_loop_t * loop = node::GetCurrentEventLoop (info.GetIsolate ());
132+ #else
133+ uv_loop_t * loop = uv_default_loop ();
134+ #endif
135+ Database* db = new Database (loop);
131136 db->Wrap (info.This ());
132137
133138 Nan::ForceSet (info.This (), Nan::New (" filename" ).ToLocalChecked (), info[0 ].As <String>(), ReadOnly);
@@ -141,7 +146,7 @@ NAN_METHOD(Database::New) {
141146}
142147
143148void Database::Work_BeginOpen (Baton* baton) {
144- int status = uv_queue_work (uv_default_loop () ,
149+ int status = uv_queue_work (baton-> db -> loop ,
145150 &baton->request , Work_Open, (uv_after_work_cb)Work_AfterOpen);
146151 assert (status == 0 );
147152}
@@ -227,7 +232,7 @@ void Database::Work_BeginClose(Baton* baton) {
227232 baton->db ->RemoveCallbacks ();
228233 baton->db ->closing = true ;
229234
230- int status = uv_queue_work (uv_default_loop () ,
235+ int status = uv_queue_work (baton-> db -> loop ,
231236 &baton->request , Work_Close, (uv_after_work_cb)Work_AfterClose);
232237 assert (status == 0 );
233238}
@@ -388,7 +393,7 @@ void Database::RegisterTraceCallback(Baton* baton) {
388393
389394 if (db->debug_trace == NULL ) {
390395 // Add it.
391- db->debug_trace = new AsyncTrace (db, TraceCallback);
396+ db->debug_trace = new AsyncTrace (db-> loop , db , TraceCallback);
392397 sqlite3_trace (db->_handle , TraceCallback, db);
393398 }
394399 else {
@@ -426,7 +431,7 @@ void Database::RegisterProfileCallback(Baton* baton) {
426431
427432 if (db->debug_profile == NULL ) {
428433 // Add it.
429- db->debug_profile = new AsyncProfile (db, ProfileCallback);
434+ db->debug_profile = new AsyncProfile (db-> loop , db , ProfileCallback);
430435 sqlite3_profile (db->_handle , ProfileCallback, db);
431436 }
432437 else {
@@ -467,7 +472,7 @@ void Database::RegisterUpdateCallback(Baton* baton) {
467472
468473 if (db->update_event == NULL ) {
469474 // Add it.
470- db->update_event = new AsyncUpdate (db, UpdateCallback);
475+ db->update_event = new AsyncUpdate (db-> loop , db , UpdateCallback);
471476 sqlite3_update_hook (db->_handle , UpdateCallback, db);
472477 }
473478 else {
@@ -522,7 +527,7 @@ void Database::Work_BeginExec(Baton* baton) {
522527 assert (baton->db ->open );
523528 assert (baton->db ->_handle );
524529 assert (baton->db ->pending == 0 );
525- int status = uv_queue_work (uv_default_loop () ,
530+ int status = uv_queue_work (baton-> db -> loop ,
526531 &baton->request , Work_Exec, (uv_after_work_cb)Work_AfterExec);
527532 assert (status == 0 );
528533}
@@ -622,7 +627,7 @@ void Database::Work_BeginLoadExtension(Baton* baton) {
622627 assert (baton->db ->open );
623628 assert (baton->db ->_handle );
624629 assert (baton->db ->pending == 0 );
625- int status = uv_queue_work (uv_default_loop () ,
630+ int status = uv_queue_work (baton-> db -> loop ,
626631 &baton->request , Work_LoadExtension, reinterpret_cast <uv_after_work_cb>(Work_AfterLoadExtension));
627632 assert (status == 0 );
628633}
0 commit comments