pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/lang/nodejs24



Module Name:    pkgsrc
Committed By:   wiz
Date:           Fri Jul 17 20:50:29 UTC 2026

Modified Files:
        pkgsrc/lang/nodejs24: Makefile distinfo
Added Files:
        pkgsrc/lang/nodejs24/patches: patch-src_node__platform.cc
            patch-src_node__platform.h

Log Message:
nodejs24: fix hang on shutdown

patch from upstream pull request

Bump PKGREVISION.


To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 pkgsrc/lang/nodejs24/Makefile \
    pkgsrc/lang/nodejs24/distinfo
cvs rdiff -u -r0 -r1.1 \
    pkgsrc/lang/nodejs24/patches/patch-src_node__platform.cc \
    pkgsrc/lang/nodejs24/patches/patch-src_node__platform.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/lang/nodejs24/Makefile
diff -u pkgsrc/lang/nodejs24/Makefile:1.12 pkgsrc/lang/nodejs24/Makefile:1.13
--- pkgsrc/lang/nodejs24/Makefile:1.12  Wed Jun 24 14:18:08 2026
+++ pkgsrc/lang/nodejs24/Makefile       Fri Jul 17 20:50:28 2026
@@ -1,6 +1,7 @@
-# $NetBSD: Makefile,v 1.12 2026/06/24 14:18:08 adam Exp $
+# $NetBSD: Makefile,v 1.13 2026/07/17 20:50:28 wiz Exp $
 
 DISTNAME=      node-v24.18.0
+PKGREVISION=   1
 EXTRACT_SUFX=  .tar.xz
 
 USE_LANGUAGES= c c++
Index: pkgsrc/lang/nodejs24/distinfo
diff -u pkgsrc/lang/nodejs24/distinfo:1.12 pkgsrc/lang/nodejs24/distinfo:1.13
--- pkgsrc/lang/nodejs24/distinfo:1.12  Wed Jun 24 14:18:08 2026
+++ pkgsrc/lang/nodejs24/distinfo       Fri Jul 17 20:50:28 2026
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.12 2026/06/24 14:18:08 adam Exp $
+$NetBSD: distinfo,v 1.13 2026/07/17 20:50:28 wiz Exp $
 
 BLAKE2s (node-v24.18.0.tar.xz) = 0cf04eff7767f7860e9edacfa75f1feb59d01b2a09183a4af1fc59a782bf6383
 SHA512 (node-v24.18.0.tar.xz) = 8267d57834fe4563a54ea814c09b38fc9520369b3e030cae36d7024d06278465c2675d7b9422de6215a281658cfb7db079124d5ac9f6b90d630d7c1ed3766df8
@@ -21,6 +21,8 @@ SHA1 (patch-node.gypi) = 4a104dba6c22702
 SHA1 (patch-src_compile__cache.cc) = 39a85bcb1ebe7c9bf7c431d6dc60dca5b9d63aaf
 SHA1 (patch-src_crypto_crypto__rsa.cc) = 299fc4326411d62d580dd3395b5d7f94c70164cb
 SHA1 (patch-src_inspector__agent.cc) = 3fd3d71f9d6013a6eb2a79e0442b31d2e2408a2f
+SHA1 (patch-src_node__platform.cc) = 4f34b197fc95f00ee6d79a662ce5c19cd8a0fae7
+SHA1 (patch-src_node__platform.h) = a68171f87030b59c657c45ebb8147e967a3af7b1
 SHA1 (patch-src_node__postmortem__metadata.cc) = 9938482d724ad6636af5dc3fa719ec26ed8539ff
 SHA1 (patch-tools_gyp_pylib_gyp_generator_make.py) = bf48cd3b928797d347b8ad8344e3965ad11e5ea7
 SHA1 (patch-tools_gyp_pylib_gyp_xcode__emulation.py) = 4ee24115f5e97ffbd23aaa6dc62f408d381d4e22

Added files:

Index: pkgsrc/lang/nodejs24/patches/patch-src_node__platform.cc
diff -u /dev/null pkgsrc/lang/nodejs24/patches/patch-src_node__platform.cc:1.1
--- /dev/null   Fri Jul 17 20:50:29 2026
+++ pkgsrc/lang/nodejs24/patches/patch-src_node__platform.cc    Fri Jul 17 20:50:28 2026
@@ -0,0 +1,45 @@
+$NetBSD: patch-src_node__platform.cc,v 1.1 2026/07/17 20:50:28 wiz Exp $
+
+https://github.com/nodejs/node/pull/64283
+
+--- src/node_platform.cc.orig  2026-06-23 21:45:00.000000000 +0000
++++ src/node_platform.cc
+@@ -526,6 +526,12 @@ void NodePlatform::Shutdown() {
+ void NodePlatform::Shutdown() {
+   if (has_shut_down_) return;
+   has_shut_down_ = true;
++
++  // V8 background tasks may be parked waiting for foreground GC work before
++  // they can return from the worker thread task.
++  while (FlushForegroundTasksForAllIsolates()) {
++  }
++
+   worker_thread_task_runner_->Shutdown();
+ 
+   {
+@@ -715,6 +721,25 @@ bool NodePlatform::FlushForegroundTasks(Isolate* isola
+   std::shared_ptr<PerIsolatePlatformData> per_isolate = ForNodeIsolate(isolate);
+   if (!per_isolate) return false;
+   return per_isolate->FlushForegroundTasksInternal();
++}
++
++bool NodePlatform::FlushForegroundTasksForAllIsolates() {
++  std::vector<std::shared_ptr<PerIsolatePlatformData>> per_isolates;
++  {
++    Mutex::ScopedLock lock(per_isolate_mutex_);
++    per_isolates.reserve(per_isolate_.size());
++    for (const auto& entry : per_isolate_) {
++      if (entry.second.second) {
++        per_isolates.push_back(entry.second.second);
++      }
++    }
++  }
++
++  bool did_work = false;
++  for (const auto& per_isolate : per_isolates) {
++    did_work |= per_isolate->FlushForegroundTasksInternal();
++  }
++  return did_work;
+ }
+ 
+ std::unique_ptr<v8::JobHandle> NodePlatform::CreateJobImpl(
Index: pkgsrc/lang/nodejs24/patches/patch-src_node__platform.h
diff -u /dev/null pkgsrc/lang/nodejs24/patches/patch-src_node__platform.h:1.1
--- /dev/null   Fri Jul 17 20:50:29 2026
+++ pkgsrc/lang/nodejs24/patches/patch-src_node__platform.h     Fri Jul 17 20:50:28 2026
@@ -0,0 +1,14 @@
+$NetBSD: patch-src_node__platform.h,v 1.1 2026/07/17 20:50:28 wiz Exp $
+
+https://github.com/nodejs/node/pull/64283
+
+--- src/node_platform.h.orig   2026-06-23 21:45:00.000000000 +0000
++++ src/node_platform.h
+@@ -266,6 +266,7 @@ class NodePlatform : public MultiIsolatePlatform {
+  private:
+   IsolatePlatformDelegate* ForIsolate(v8::Isolate* isolate);
+   std::shared_ptr<PerIsolatePlatformData> ForNodeIsolate(v8::Isolate* isolate);
++  bool FlushForegroundTasksForAllIsolates();
+ 
+   Mutex per_isolate_mutex_;
+   using DelegatePair = std::pair<IsolatePlatformDelegate*,



Home | Main Index | Thread Index | Old Index