René's URL Explorer Experiment


Title: src: add locksCounters() to monitor Web Locks usage by IlyasShabi · Pull Request #60502 · nodejs/node · GitHub

Open Graph Title: src: add locksCounters() to monitor Web Locks usage by IlyasShabi · Pull Request #60502 · nodejs/node

X Title: src: add locksCounters() to monitor Web Locks usage by IlyasShabi · Pull Request #60502 · nodejs/node

Description: Description This PR introduces process.locksCounters() to provide real time visibility into Web Locks API usage and contention metrics across the Node.js process. Motivation Lock contention can be difficult to diagnose in concurrent applications. Other platforms already make this easier,.NET has lock performance counters, Java has JMX for checking thread locks, and Go has mutex profiling. Node.js added the Web Locks API in v24, but there’s currently no built-in way to see how locks are behaving. The new process.locksCounters() provide metrics to help developers monitor and debug lock related performance problems.

Open Graph Description: Description This PR introduces process.locksCounters() to provide real time visibility into Web Locks API usage and contention metrics across the Node.js process. Motivation Lock contention can be ...

X Description: Description This PR introduces process.locksCounters() to provide real time visibility into Web Locks API usage and contention metrics across the Node.js process. Motivation Lock contention can be ...

Opengraph URL: https://github.com/nodejs/node/pull/60502

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:ad578d36-692e-1776-886a-8ffe517ac316
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idDA0A:374E1E:79A858:A93986:6A4C9333
html-safe-nonce33ed442344db48d649a3d564b64e77d1bd72b91b29ebc8ab2ccaa1fea6377112
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJEQTBBOjM3NEUxRTo3OUE4NTg6QTkzOTg2OjZBNEM5MzMzIiwidmlzaXRvcl9pZCI6IjEwODc0OTk2OTI2NTkyMTcyMDMiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ==
visitor-hmaca0b6d6b70afc741b4b48c2006d0042f741d004264e64d5680e07f706fe793290
hovercard-subject-tagpull_request:2964936301
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/nodejs/node/pull/60502/files
twitter:imagehttps://avatars.githubusercontent.com/u/33763729?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/33763729?s=400&v=4
og:image:altDescription This PR introduces process.locksCounters() to provide real time visibility into Web Locks API usage and contention metrics across the Node.js process. Motivation Lock contention can be ...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None3d11bb817438277de2a940854450e83a7d32b6aeb5014e9e6b00a6423900251c
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/nodejs/node git https://github.com/nodejs/node.git
octolytics-dimension-user_id9950313
octolytics-dimension-user_loginnodejs
octolytics-dimension-repository_id27193779
octolytics-dimension-repository_nwonodejs/node
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id27193779
octolytics-dimension-repository_network_root_nwonodejs/node
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release7a2dede45637df6b92ddcfe2a557e67d4b5854ae
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/nodejs/node/pull/60502/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fnodejs%2Fnode%2Fpull%2F60502%2Ffiles
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fnodejs%2Fnode%2Fpull%2F60502%2Ffiles
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=nodejs%2Fnode
Reloadhttps://github.com/nodejs/node/pull/60502/files
Reloadhttps://github.com/nodejs/node/pull/60502/files
Reloadhttps://github.com/nodejs/node/pull/60502/files
Please reload this pagehttps://github.com/nodejs/node/pull/60502/files
nodejs https://github.com/nodejs
nodehttps://github.com/nodejs/node
Please reload this pagehttps://github.com/nodejs/node/pull/60502/files
Notifications https://github.com/login?return_to=%2Fnodejs%2Fnode
Fork 36k https://github.com/login?return_to=%2Fnodejs%2Fnode
Star 118k https://github.com/login?return_to=%2Fnodejs%2Fnode
Code https://github.com/nodejs/node
Issues 1.4k https://github.com/nodejs/node/issues
Pull requests 964 https://github.com/nodejs/node/pulls
Actions https://github.com/nodejs/node/actions
Projects https://github.com/nodejs/node/projects
Security and quality 0 https://github.com/nodejs/node/security
Insights https://github.com/nodejs/node/pulse
Code https://github.com/nodejs/node
Issues https://github.com/nodejs/node/issues
Pull requests https://github.com/nodejs/node/pulls
Actions https://github.com/nodejs/node/actions
Projects https://github.com/nodejs/node/projects
Security and quality https://github.com/nodejs/node/security
Insights https://github.com/nodejs/node/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Fnodejs%2Fnode%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fnodejs%2Fnode%2Fissues%2Fnew%2Fchoose
IlyasShabihttps://github.com/IlyasShabi
nodejs:mainhttps://github.com/nodejs/node/tree/main
IlyasShabi:ishabi/locks-countershttps://github.com/IlyasShabi/node/tree/ishabi/locks-counters
Conversation 11 https://github.com/nodejs/node/pull/60502
Commits 1 https://github.com/nodejs/node/pull/60502/commits
Checks 60 https://github.com/nodejs/node/pull/60502/checks
Files changed https://github.com/nodejs/node/pull/60502/files
Please reload this pagehttps://github.com/nodejs/node/pull/60502/files
src: add locksCounters() to monitor Web Locks usage https://github.com/nodejs/node/pull/60502/files#top
Show all changes 1 commit https://github.com/nodejs/node/pull/60502/files
68a2665 src: add locksCounters() to monitor Web Locks usage IlyasShabi Oct 30, 2025 https://github.com/nodejs/node/pull/60502/commits/68a266571831d4cf3e13f40762d7bdd0389de634
Clear filters https://github.com/nodejs/node/pull/60502/files
Please reload this pagehttps://github.com/nodejs/node/pull/60502/files
Please reload this pagehttps://github.com/nodejs/node/pull/60502/files
globals.md https://github.com/nodejs/node/pull/60502/files#diff-27d988075d57cd32dd527269eebc991f4567f1bf7a751a39ab72e2ae70050031
process.md https://github.com/nodejs/node/pull/60502/files#diff-5212ec434ff69f31e0de5e7e6f57abd45d810780c60f05736ab31eae5a395186
worker_threads.md https://github.com/nodejs/node/pull/60502/files#diff-62171c87f6f18e5676409078a67ffca4a8381b4e08ba0d14e1765c99546b642f
node.js https://github.com/nodejs/node/pull/60502/files#diff-5dc112d202934c998db1f82432ccc091f1e588027b8f688cc50e1d7f46007df1
per_thread.js https://github.com/nodejs/node/pull/60502/files#diff-38d3873e06750436cd724af3eb60026b1bb8da914467797cf7ef7a3c94bd74ce
node_locks.cc https://github.com/nodejs/node/pull/60502/files#diff-225b7b934c709c4b336d79d0f5df4b093f42b10667884af03fcae7b6eb13f176
node_locks.h https://github.com/nodejs/node/pull/60502/files#diff-aa9d0fab0aa537637bc501b5677c0a55ec5defec566e0d80c8df9ceeca4af9eb
node_process_methods.cc https://github.com/nodejs/node/pull/60502/files#diff-62fb3389674420a22b14191b1eb3b65a173f6c21657cf3e8a44c442244115f0f
test-process-locks-counters.js https://github.com/nodejs/node/pull/60502/files#diff-3d065c26237594c797b8bcfe683374bcf0fc2d50e6fe3342de3aa245b86e11d0
doc/api/globals.mdhttps://github.com/nodejs/node/pull/60502/files#diff-27d988075d57cd32dd527269eebc991f4567f1bf7a751a39ab72e2ae70050031
View file https://github.com/IlyasShabi/node/blob/68a266571831d4cf3e13f40762d7bdd0389de634/doc/api/globals.md
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/nodejs/node/pull/60502/{{ revealButtonHref }}
https://github.com/nodejs/node/pull/60502/files#diff-27d988075d57cd32dd527269eebc991f4567f1bf7a751a39ab72e2ae70050031
simon-idhttps://github.com/simon-id
Nov 5, 2025https://github.com/nodejs/node/pull/60502/files#r2493640495
Learn morehttps://docs.github.com/articles/managing-disruptive-comments/#hiding-a-comment
Please reload this pagehttps://github.com/nodejs/node/pull/60502/files
https://github.com/nodejs/node/pull/60502/files#diff-27d988075d57cd32dd527269eebc991f4567f1bf7a751a39ab72e2ae70050031
https://github.com/nodejs/node/pull/60502/files#diff-27d988075d57cd32dd527269eebc991f4567f1bf7a751a39ab72e2ae70050031
https://github.com/nodejs/node/pull/60502/files#diff-27d988075d57cd32dd527269eebc991f4567f1bf7a751a39ab72e2ae70050031
doc/api/process.mdhttps://github.com/nodejs/node/pull/60502/files#diff-5212ec434ff69f31e0de5e7e6f57abd45d810780c60f05736ab31eae5a395186
View file https://github.com/IlyasShabi/node/blob/68a266571831d4cf3e13f40762d7bdd0389de634/doc/api/process.md
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/nodejs/node/pull/60502/{{ revealButtonHref }}
https://github.com/nodejs/node/pull/60502/files#diff-5212ec434ff69f31e0de5e7e6f57abd45d810780c60f05736ab31eae5a395186
https://github.com/nodejs/node/pull/60502/files#diff-5212ec434ff69f31e0de5e7e6f57abd45d810780c60f05736ab31eae5a395186
https://github.com/nodejs/node/pull/60502/files#diff-5212ec434ff69f31e0de5e7e6f57abd45d810780c60f05736ab31eae5a395186
https://github.com/nodejs/node/pull/60502/files#diff-5212ec434ff69f31e0de5e7e6f57abd45d810780c60f05736ab31eae5a395186
doc/api/worker_threads.mdhttps://github.com/nodejs/node/pull/60502/files#diff-62171c87f6f18e5676409078a67ffca4a8381b4e08ba0d14e1765c99546b642f
View file https://github.com/IlyasShabi/node/blob/68a266571831d4cf3e13f40762d7bdd0389de634/doc/api/worker_threads.md
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/nodejs/node/pull/60502/{{ revealButtonHref }}
https://github.com/nodejs/node/pull/60502/files#diff-62171c87f6f18e5676409078a67ffca4a8381b4e08ba0d14e1765c99546b642f
https://github.com/nodejs/node/pull/60502/files#diff-62171c87f6f18e5676409078a67ffca4a8381b4e08ba0d14e1765c99546b642f
https://github.com/nodejs/node/pull/60502/files#diff-62171c87f6f18e5676409078a67ffca4a8381b4e08ba0d14e1765c99546b642f
https://github.com/nodejs/node/pull/60502/files#diff-62171c87f6f18e5676409078a67ffca4a8381b4e08ba0d14e1765c99546b642f
lib/internal/bootstrap/node.jshttps://github.com/nodejs/node/pull/60502/files#diff-5dc112d202934c998db1f82432ccc091f1e588027b8f688cc50e1d7f46007df1
View file https://github.com/IlyasShabi/node/blob/68a266571831d4cf3e13f40762d7bdd0389de634/lib/internal/bootstrap/node.js
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/nodejs/node/pull/60502/{{ revealButtonHref }}
https://github.com/nodejs/node/pull/60502/files#diff-5dc112d202934c998db1f82432ccc091f1e588027b8f688cc50e1d7f46007df1
https://github.com/nodejs/node/pull/60502/files#diff-5dc112d202934c998db1f82432ccc091f1e588027b8f688cc50e1d7f46007df1
lib/internal/process/per_thread.jshttps://github.com/nodejs/node/pull/60502/files#diff-38d3873e06750436cd724af3eb60026b1bb8da914467797cf7ef7a3c94bd74ce
View file https://github.com/IlyasShabi/node/blob/68a266571831d4cf3e13f40762d7bdd0389de634/lib/internal/process/per_thread.js
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/nodejs/node/pull/60502/{{ revealButtonHref }}
https://github.com/nodejs/node/pull/60502/files#diff-38d3873e06750436cd724af3eb60026b1bb8da914467797cf7ef7a3c94bd74ce
simon-idhttps://github.com/simon-id
Nov 5, 2025https://github.com/nodejs/node/pull/60502/files#r2493646975
Learn morehttps://docs.github.com/articles/managing-disruptive-comments/#hiding-a-comment
Please reload this pagehttps://github.com/nodejs/node/pull/60502/files
https://github.com/nodejs/node/pull/60502/files#diff-38d3873e06750436cd724af3eb60026b1bb8da914467797cf7ef7a3c94bd74ce
https://github.com/nodejs/node/pull/60502/files#diff-38d3873e06750436cd724af3eb60026b1bb8da914467797cf7ef7a3c94bd74ce
https://github.com/nodejs/node/pull/60502/files#diff-38d3873e06750436cd724af3eb60026b1bb8da914467797cf7ef7a3c94bd74ce
https://github.com/nodejs/node/pull/60502/files#diff-38d3873e06750436cd724af3eb60026b1bb8da914467797cf7ef7a3c94bd74ce
src/node_locks.cchttps://github.com/nodejs/node/pull/60502/files#diff-225b7b934c709c4b336d79d0f5df4b093f42b10667884af03fcae7b6eb13f176
View file https://github.com/IlyasShabi/node/blob/68a266571831d4cf3e13f40762d7bdd0389de634/src/node_locks.cc
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/nodejs/node/pull/60502/{{ revealButtonHref }}
https://github.com/nodejs/node/pull/60502/files#diff-225b7b934c709c4b336d79d0f5df4b093f42b10667884af03fcae7b6eb13f176
https://github.com/nodejs/node/pull/60502/files#diff-225b7b934c709c4b336d79d0f5df4b093f42b10667884af03fcae7b6eb13f176
https://github.com/nodejs/node/pull/60502/files#diff-225b7b934c709c4b336d79d0f5df4b093f42b10667884af03fcae7b6eb13f176
https://github.com/nodejs/node/pull/60502/files#diff-225b7b934c709c4b336d79d0f5df4b093f42b10667884af03fcae7b6eb13f176
https://github.com/nodejs/node/pull/60502/files#diff-225b7b934c709c4b336d79d0f5df4b093f42b10667884af03fcae7b6eb13f176
https://github.com/nodejs/node/pull/60502/files#diff-225b7b934c709c4b336d79d0f5df4b093f42b10667884af03fcae7b6eb13f176
https://github.com/nodejs/node/pull/60502/files#diff-225b7b934c709c4b336d79d0f5df4b093f42b10667884af03fcae7b6eb13f176
https://github.com/nodejs/node/pull/60502/files#diff-225b7b934c709c4b336d79d0f5df4b093f42b10667884af03fcae7b6eb13f176
src/node_locks.hhttps://github.com/nodejs/node/pull/60502/files#diff-aa9d0fab0aa537637bc501b5677c0a55ec5defec566e0d80c8df9ceeca4af9eb
View file https://github.com/IlyasShabi/node/blob/68a266571831d4cf3e13f40762d7bdd0389de634/src/node_locks.h
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/nodejs/node/pull/60502/{{ revealButtonHref }}
https://github.com/nodejs/node/pull/60502/files#diff-aa9d0fab0aa537637bc501b5677c0a55ec5defec566e0d80c8df9ceeca4af9eb
https://github.com/nodejs/node/pull/60502/files#diff-aa9d0fab0aa537637bc501b5677c0a55ec5defec566e0d80c8df9ceeca4af9eb
https://github.com/nodejs/node/pull/60502/files#diff-aa9d0fab0aa537637bc501b5677c0a55ec5defec566e0d80c8df9ceeca4af9eb
src/node_process_methods.cchttps://github.com/nodejs/node/pull/60502/files#diff-62fb3389674420a22b14191b1eb3b65a173f6c21657cf3e8a44c442244115f0f
View file https://github.com/IlyasShabi/node/blob/68a266571831d4cf3e13f40762d7bdd0389de634/src/node_process_methods.cc
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/nodejs/node/pull/60502/{{ revealButtonHref }}
https://github.com/nodejs/node/pull/60502/files#diff-62fb3389674420a22b14191b1eb3b65a173f6c21657cf3e8a44c442244115f0f
https://github.com/nodejs/node/pull/60502/files#diff-62fb3389674420a22b14191b1eb3b65a173f6c21657cf3e8a44c442244115f0f
https://github.com/nodejs/node/pull/60502/files#diff-62fb3389674420a22b14191b1eb3b65a173f6c21657cf3e8a44c442244115f0f
https://github.com/nodejs/node/pull/60502/files#diff-62fb3389674420a22b14191b1eb3b65a173f6c21657cf3e8a44c442244115f0f
https://github.com/nodejs/node/pull/60502/files#diff-62fb3389674420a22b14191b1eb3b65a173f6c21657cf3e8a44c442244115f0f
https://github.com/nodejs/node/pull/60502/files#diff-62fb3389674420a22b14191b1eb3b65a173f6c21657cf3e8a44c442244115f0f
https://github.com/nodejs/node/pull/60502/files#diff-62fb3389674420a22b14191b1eb3b65a173f6c21657cf3e8a44c442244115f0f
https://github.com/nodejs/node/pull/60502/files#diff-62fb3389674420a22b14191b1eb3b65a173f6c21657cf3e8a44c442244115f0f
https://github.com/nodejs/node/pull/60502/files#diff-62fb3389674420a22b14191b1eb3b65a173f6c21657cf3e8a44c442244115f0f
https://github.com/nodejs/node/pull/60502/files#diff-62fb3389674420a22b14191b1eb3b65a173f6c21657cf3e8a44c442244115f0f
Please reload this pagehttps://github.com/nodejs/node/pull/60502/files
Please reload this pagehttps://github.com/nodejs/node/pull/60502/files
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.