From 4d93a75260fff80fa3b9cf0895dfe6f0804cf552 Mon Sep 17 00:00:00 2001 From: "Naryshkin, Ilia" Date: Sun, 7 Jul 2024 00:11:29 +0300 Subject: [PATCH 01/25] chore: Add logging for RSS memory in 01_system_info.c --- .gitignore | 2 + .python-version | 1 + README.md | 64 ++----- package-lock.json | 408 +++++++++++++++++++++++++++++++++++++++++++ package.json | 3 +- src/01_system_info.c | 9 +- 6 files changed, 430 insertions(+), 57 deletions(-) create mode 100644 .python-version create mode 100644 package-lock.json diff --git a/.gitignore b/.gitignore index 1f43a2f..6360c78 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,5 @@ deps build out *.xcodeproj + +.DS_Store diff --git a/.python-version b/.python-version new file mode 100644 index 0000000..a616492 --- /dev/null +++ b/.python-version @@ -0,0 +1 @@ +2.7.18 diff --git a/README.md b/README.md index fdf96d7..e7b29c5 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # learnuv -Learn uv for fun and profit, a self guided workshop to [the library](https://github.com/libuv/libuv) that powers Node.js. +Learn uv for fun and profit, a self-guided workshop to [the library](https://github.com/libuv/libuv) that powers Node.js. ![screenshot](assets/screenshot.png) @@ -11,74 +11,30 @@ concepts that will help you complete the exercises. ## Installation -Requires [Python](https://www.python.org/downloads/) 2.6 or 2.7 to be installed. -If python is not in your path set the environment variable `PYTHON` to its -location. For example on Windows: `set PYTHON=C:\Python27\python.exe` - ```sh -git clone https://github.com/thlorenz/learnuv && cd learnuv -npm install +pyenv install 2.7 && +pyenv local 2.7.18 ``` -## Getting Started - ```sh -./learnuv help +eval "$(pyenv init -)" # for some reason it's not working from ~/.zshrc ``` -## Building - -**learnuv** comes with build commands that you can use instead of the manual steps explained further below. - -- **./learnuv ninja** - Compile your sources with ninja, stored inside `./out/Debug` -- **./learnuv make** - Compile your sources with make, stored inside `./out/Debug` -- **./learnuv xcode** - Generate a learnuv Xcode project, named `./learnuv.xcodeproj` - -### Windows Caveats - -Ninja and Make do not work on windows except via [cygwin](https://www.cygwin.com/). - -### Ninja - -Highly recommended since it builds faster than any of the other options, so [get ninja](https://ninja-build.org/) -and do: - ```sh -./gyp_learnuv.py -f ninja -ninja -C out/Debug -./out/Debug/01_system_info +npm install ``` -### Make - -Works on Linux and OSX. - ```sh -./gyp_learnuv.py -f make -make -C out -./out/Debug/01_system_info +pip install six # https://github.com/thlorenz/learnuv/issues/45 ``` -### Xcode - -Works on OSX only. Highly recommended to ease debugging and code navigation. - ```sh -./gyp_learnuv.py -f xcode -open learnuv.xcodeproj +./learnuv ``` -### Visual Studio - -Works on Windows only. **TODO** need to adapt [vcbuild.bat](https://github.com/joyent/libuv/blob/master/vcbuild.bat). - -## Running - -``` -./learnuv +```sh +./learnuv xcode && +open learnuv.xcodeproj ``` ## License diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..31959bd --- /dev/null +++ b/package-lock.json @@ -0,0 +1,408 @@ +{ + "name": "learnuv", + "version": "0.1.3", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "learnuv", + "version": "0.1.3", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "ansicolors": "~0.3.2", + "diff": "^5.2.0", + "text-table": "~0.2.0", + "workshopper": "~1.3.2", + "workshopper-exercise": "~1.1.0", + "workshopper-hooray": "~1.0.1", + "workshopper-more": "~1.0.1" + } + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "node_modules/after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha512-QbJ0NTQ/I9DI3uSJA4cbexiwQeRAfjPScqIbSjUDd9TOrcg6pTkdgziesOqxBMBzit8vFCTwrP27t13vFOORRA==" + }, + "node_modules/ansi-styles": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz", + "integrity": "sha512-3iF4FIKdxaVYT3JqQuY3Wat/T2t7TRbbQ94Fu50ZUCbLy4TFbTzr90NOHQodQkNqmeEGCw8WbeP78WNi6SKYUA==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/ansicolors": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", + "integrity": "sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==" + }, + "node_modules/cardinal": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-0.5.0.tgz", + "integrity": "sha512-HRGILv/FykuNVO7xCTiXMEPJxA7jMyHwEgljgcAZ3xkLSEhLvStqcTy6xamC1NH4Ja8hlc9VHlXKoSuFbI+7lA==", + "dependencies": { + "ansicolors": "~0.2.1", + "redeyed": "~0.5.0" + }, + "bin": { + "cdl": "bin/cdl.js" + } + }, + "node_modules/cardinal/node_modules/ansicolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.2.1.tgz", + "integrity": "sha512-tOIuy1/SK/dr94ZA0ckDohKXNeBNqZ4us6PjMVLs5h1w2GBB6uPtOknp2+VF4F/zcy9LI70W+Z+pE2Soajky1w==" + }, + "node_modules/chalk": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz", + "integrity": "sha512-sQfYDlfv2DGVtjdoQqxS0cEZDroyG8h6TamA6rvxwlrU5BaSLDx9xhatBYl2pxZ7gmpNaPFVwBtdGdu5rQ+tYQ==", + "dependencies": { + "ansi-styles": "~1.0.0", + "has-color": "~0.1.0", + "strip-ansi": "~0.1.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/charm": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/charm/-/charm-0.1.2.tgz", + "integrity": "sha512-syedaZ9cPe7r3hoQA9twWYKu5AIyCswN5+szkmPBe9ccdLrj4bYaCnLVPTLd2kgVRc7+zoX4tyPgRnFKCj5YjQ==" + }, + "node_modules/colors": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", + "integrity": "sha512-OsSVtHK8Ir8r3+Fxw/b4jS1ZLPXkV6ZxDRJQzeD7qo0SqMXWrHDM71DgYzPMHY8SFJ0Ao+nNU2p1MmwdzKqPrw==", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/colors-tmpl": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/colors-tmpl/-/colors-tmpl-0.1.1.tgz", + "integrity": "sha512-MmreFWowwAJ/EOux+8M4mVLRL2TZTic4VCaLsA5o4HhujZzwz9jpMdhObqKzZyYO89I5VFZK2wTLfmB/e3ch6g==", + "deprecated": "no longer maintained", + "dependencies": { + "colors": "~0.6.2" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/diff": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", + "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/esprima-fb": { + "version": "12001.1.0-dev-harmony-fb", + "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-12001.1.0-dev-harmony-fb.tgz", + "integrity": "sha512-kj/HWGgQXRPKf7qAd8Woo2AaxRdT8kpTK2x1+c3zeucEYiIsGktmMC1N3q8J99R0ECMG7Ey/kywsR3qXPHBaXA==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/figlet": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.7.0.tgz", + "integrity": "sha512-gO8l3wvqo0V7wEFLXPbkX83b7MVjRrk1oRLfYlZXol8nEpb/ON9pcKLI4qpBv5YtOTfrINtqb7b40iYY2FTWFg==", + "bin": { + "figlet": "bin/index.js" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-color": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz", + "integrity": "sha512-kaNz5OTAYYmt646Hkqw50/qyxP2vFnTVu5AQ1Zmk22Kk5+4Qx6BpO8+u7IKsML5fOsFk0ZT0AcCJNYwcvaLBvw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + }, + "node_modules/map-async": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/map-async/-/map-async-0.1.1.tgz", + "integrity": "sha512-nim726/DRF1yuTrx3qNJcFNqJCgiFD98eh/49EdI5LWTspX4whkVvT0hOcMEVJWCijKkp519vCY1uD05Hklc6w==" + }, + "node_modules/marked": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.19.tgz", + "integrity": "sha512-ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg==", + "bin": { + "marked": "bin/marked" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/minimist": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha512-iotkTvxc+TwOm5Ieim8VnSNvCDjCK9S8G3scJ50ZthspSxa7jx50jkhYduuAtAjvfDUwSgOwf8+If99AlOEhyw==" + }, + "node_modules/mkdirp": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz", + "integrity": "sha512-8OCq0De/h9ZxseqzCH8Kw/Filf5pF/vMI6+BH7Lu0jXz2pqYCjTAQRolSxRIi+Ax+oCCjlxoJMP0YQ4XlrQNHg==", + "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)" + }, + "node_modules/msee": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/msee/-/msee-0.1.2.tgz", + "integrity": "sha512-x85F5MY0FjQpj8svpn9PZno6EpxgUIxP50Gs4kg57iyBbXO5IHavixsK2ZJgCUI4q6fNoFNdUxxEpabsucLZsQ==", + "dependencies": { + "cardinal": "^0.5.0", + "chalk": "~0.4.0", + "marked": "~0.3.0", + "nopt": "~2.1.1", + "xtend": "~2.1.1" + }, + "bin": { + "msee": "bin/msee" + } + }, + "node_modules/msee/node_modules/xtend": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==", + "dependencies": { + "object-keys": "~0.4.0" + }, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/nopt": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-2.1.2.tgz", + "integrity": "sha512-x8vXm7BZ2jE1Txrxh/hO74HTuYZQEbo8edoRcANgdZ4+PCV+pbjd/xdummkmjjC7LU5EjPzlu8zEq/oxWylnKA==", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/object-keys": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==" + }, + "node_modules/optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha512-snN4O4TkigujZphWLN0E//nQmm7790RYaE53DdL7ZYwee2D8DDo9/EyYiKUfN3rneWUjhJnueija3G9I2i0h3g==", + "dependencies": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + } + }, + "node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/redeyed": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-0.5.0.tgz", + "integrity": "sha512-AhuOInui6+UEtwpYhp+CqxpP6MD7tnEFTR6yNxEcqbodg+dYDBjDdJJoLsH3k2Wp3mTZkuigP2Bf1bwAd7Fd7Q==", + "dependencies": { + "esprima-fb": "~12001.1.0-dev-harmony-fb" + } + }, + "node_modules/resumer": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", + "integrity": "sha512-Fn9X8rX8yYF4m81rZCK/5VmrmsSbqS/i3rDLl6ZZHAXgC2nTAx3dhwG8q8odP/RmdLa2YrybDJaAMg+X1ajY3w==", + "dependencies": { + "through": "~2.3.4" + } + }, + "node_modules/split": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", + "integrity": "sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==", + "dependencies": { + "through": "2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" + }, + "node_modules/strip-ansi": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz", + "integrity": "sha512-behete+3uqxecWlDAm5lmskaSaISA+ThQ4oNNBDTBJt0x2ppR6IPqfZNuj6BLaLJ/Sji4TPZlcRyOis8wXQTLg==", + "bin": { + "strip-ansi": "cli.js" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/terminal-menu": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/terminal-menu/-/terminal-menu-0.3.5.tgz", + "integrity": "sha512-djfyZudnVNR22xDiO6WtERJ4t0W+RVSGqh7XIsByKzSsdCa/QXwtOVnJaLZ8i6AsclshzG/o+Vb0EZQLLSj8uA==", + "dependencies": { + "charm": "~0.1.2", + "inherits": "~2.0.0", + "resumer": "~0.0.0", + "visualwidth": "~0.0.1" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" + }, + "node_modules/through2": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.4.2.tgz", + "integrity": "sha512-45Llu+EwHKtAZYTPPVn3XZHBgakWMN3rokhEv5hu596XP+cNgplMg+Gj+1nmAvj+L0K7+N49zBKx5rah5u0QIQ==", + "dependencies": { + "readable-stream": "~1.0.17", + "xtend": "~2.1.1" + } + }, + "node_modules/through2/node_modules/xtend": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==", + "dependencies": { + "object-keys": "~0.4.0" + }, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/tuple-stream": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/tuple-stream/-/tuple-stream-0.0.2.tgz", + "integrity": "sha512-RLg676gaO9qAOLoamGLgSRgX2jU0IuyvTw5wIJGi3CowTJeSd5KFOZUmW5cuB3f7YSeuyiVKQ3v6bXby51YyuQ==", + "dependencies": { + "through": "~2.3.4" + } + }, + "node_modules/visualwidth": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/visualwidth/-/visualwidth-0.0.1.tgz", + "integrity": "sha512-mO7Gjg3o47WC+vMtBgNiupdhVnKYxMZXuZJ+ctT3bGPd1JlzWM4X7DGHN6OiYaT5RrcdJ1Ls/hasM4TzoHbZRw==" + }, + "node_modules/wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha512-1tMA907+V4QmxV7dbRvb4/8MaRALK6q9Abid3ndMYnbyo8piisCmeONVqVSXqQA3KaP4SLt5b7ud6E2sqP8TFw==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/workshopper": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/workshopper/-/workshopper-1.3.3.tgz", + "integrity": "sha512-s3rQN4ZzEljhGggkHdJXAtC06cJSjyL67MZ2Go1R+BtphIRGkySUMWcJaY5X6uK7OBlAWXwuz2Zuc8Qx53KI/A==", + "dependencies": { + "chalk": "~0.4.0", + "colors-tmpl": "~0.1.0", + "map-async": "~0.1.1", + "mkdirp": "~0.3.5", + "msee": "~0.1.1", + "optimist": "~0.6.1", + "terminal-menu": "~0.3.2", + "visualwidth": "0.0.1", + "xtend": "~3.0.0" + } + }, + "node_modules/workshopper-exercise": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/workshopper-exercise/-/workshopper-exercise-1.1.0.tgz", + "integrity": "sha512-OqKWnw1o5aHNYgBhW5xah6bhHeD1YHVMCw3Jpr/SffILyrsNSJrTVbcaUikFZDkqrNzJCqkO/G6V3hUn32DHbw==", + "dependencies": { + "after": "~0.8.1", + "chalk": "~0.4.0", + "split": "~0.3.0", + "through2": "~0.4.1", + "tuple-stream": "0.0.2", + "xtend": "~2.1.2" + } + }, + "node_modules/workshopper-exercise/node_modules/xtend": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==", + "dependencies": { + "object-keys": "~0.4.0" + }, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/workshopper-hooray": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/workshopper-hooray/-/workshopper-hooray-1.0.1.tgz", + "integrity": "sha512-mXgy9ws2yr8QJDPI7leLHIKTC6NvFdZMdFK/cjbXsxMX3mayVOlTPAKcgw14MVq8Q9zEpTPORrQ+nikOaUMMcw==", + "dependencies": { + "colors": "^0.6.2", + "figlet": "^1.1.0" + } + }, + "node_modules/workshopper-more": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/workshopper-more/-/workshopper-more-1.0.1.tgz", + "integrity": "sha512-V7vDGUR1mb1VnxpygtOdoxAOVAi1JTIzvU7k/ypYf6nOs+ZBdx0EDbzfmfzVGTVvxhxi8nX7zMdOrOojiP43rQ==" + }, + "node_modules/xtend": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz", + "integrity": "sha512-sp/sT9OALMjRW1fKDlPeuSZlDQpkqReA0pyJukniWbTGoEKefHxhGJynE3PNhUMlcM8qWIjPwecwCw4LArS5Eg==", + "engines": { + "node": ">=0.4" + } + } + } +} diff --git a/package.json b/package.json index 49abfc8..291ca31 100644 --- a/package.json +++ b/package.json @@ -19,14 +19,13 @@ "homepage": "https://github.com/thlorenz/learnuv", "dependencies": { "ansicolors": "~0.3.2", - "diff": "~1.0.8", + "diff": "^5.2.0", "text-table": "~0.2.0", "workshopper": "~1.3.2", "workshopper-exercise": "~1.1.0", "workshopper-hooray": "~1.0.1", "workshopper-more": "~1.0.1" }, - "devDependencies": {}, "keywords": [], "author": { "name": "Thorsten Lorenz", diff --git a/src/01_system_info.c b/src/01_system_info.c index 42df878..6ed1868 100644 --- a/src/01_system_info.c +++ b/src/01_system_info.c @@ -1,6 +1,8 @@ #include "learnuv.h" -int main() { +int main() +{ + log_info("Hello world"); int err; double uptime; @@ -10,6 +12,11 @@ int main() { log_report("Uptime: %f", uptime); size_t resident_set_memory; + err = uv_resident_set_memory(&resident_set_memory); + CHECK(err, "uv_uptime"); + + log_info("RSS: %ld", resident_set_memory); + log_report("RSS: %ld", resident_set_memory); return 0; } From 48231fd33841f14133382f6c1cbeb842ed7c378b Mon Sep 17 00:00:00 2001 From: "Naryshkin, Ilia" Date: Sun, 7 Jul 2024 12:37:34 +0300 Subject: [PATCH 02/25] feat: libuv idle handler --- README.md | 4 ++++ src/01_system_info.c | 2 +- src/02_idle.c | 29 +++++++++++++++++++++++------ 3 files changed, 28 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index e7b29c5..c5b9ae8 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,10 @@ pip install six # https://github.com/thlorenz/learnuv/issues/45 open learnuv.xcodeproj ``` +```sh +./learnuv verify +``` + ## License MIT diff --git a/src/01_system_info.c b/src/01_system_info.c index 6ed1868..637dcbd 100644 --- a/src/01_system_info.c +++ b/src/01_system_info.c @@ -2,7 +2,7 @@ int main() { - log_info("Hello world"); + log_info("01_system_info"); int err; double uptime; diff --git a/src/02_idle.c b/src/02_idle.c index 85c1640..0bd91ef 100644 --- a/src/02_idle.c +++ b/src/02_idle.c @@ -1,22 +1,39 @@ #include "learnuv.h" -void idle_cb(uv_idle_t* handle) { +void idle_cb(uv_idle_t *handle) +{ static int64_t count = -1; count++; - if ((count % 10000) == 0) log_report("."); - if (count >= 50000) uv_idle_stop(handle); + if ((count % 10000) == 0) + { + log_info("."); + log_report("."); + } + if (count >= 50000) + { + log_info("uv_idle_stop"); + uv_idle_stop(handle); + } } -int main() { - uv_idle_t idle_handle; +int main() +{ + log_info("running 02_idle"); + + uv_idle_t idle; /* 1. create the event loop */ + // Why * here? + uv_loop_t *loop = uv_default_loop(); - /* 2. initialize an idle handler for the loop */ + /* 2. init an idle handler for the loop */ + uv_idle_init(loop, &idle); /* 3. start the idle handler with a function to call */ + uv_idle_start(&idle, idle_cb); /* 4. start the event loop */ + uv_run(loop, UV_RUN_DEFAULT); return 0; } From 7c626704cf05b8a844fcb5df784a35b92f1be3fe Mon Sep 17 00:00:00 2001 From: "Naryshkin, Ilia" Date: Tue, 9 Jul 2024 10:05:10 +0300 Subject: [PATCH 03/25] 03_fs_readsync --- .vscode/settings.json | 8 ++++++++ README.md | 7 +++++-- src/02_idle.c | 4 +++- src/03_fs_readsync.c | 47 ++++++++++++++++++++++++++++++++++++------- 4 files changed, 56 insertions(+), 10 deletions(-) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..dd7741c --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,8 @@ +{ + "files.associations": { + "*.gz": "json", + "*.sql": "sql", + ".*yml": "yaml", + "locale": "c" + } +} diff --git a/README.md b/README.md index c5b9ae8..fd10f24 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ Learn uv for fun and profit, a self-guided workshop to [the library](https://git Read the [learnuv gitbook](http://thlorenz.github.io/learnuv/book) which explains some libuv and related C language concepts that will help you complete the exercises. -## Installation +## Setup ```sh pyenv install 2.7 && @@ -33,7 +33,10 @@ pip install six # https://github.com/thlorenz/learnuv/issues/45 ``` ```sh -./learnuv xcode && +./learnuv xcode +``` + +```sh open learnuv.xcodeproj ``` diff --git a/src/02_idle.c b/src/02_idle.c index 0bd91ef..2fcdc5c 100644 --- a/src/02_idle.c +++ b/src/02_idle.c @@ -23,10 +23,12 @@ int main() uv_idle_t idle; /* 1. create the event loop */ - // Why * here? + // TODO: Why * here? + // http://docs.libuv.org/en/latest/loop.html uv_loop_t *loop = uv_default_loop(); /* 2. init an idle handler for the loop */ + // http://docs.libuv.org/en/latest/idle.html uv_idle_init(loop, &idle); /* 3. start the idle handler with a function to call */ diff --git a/src/03_fs_readsync.c b/src/03_fs_readsync.c index 5b67780..c5066ac 100644 --- a/src/03_fs_readsync.c +++ b/src/03_fs_readsync.c @@ -3,25 +3,54 @@ #define BUF_SIZE 37 static const char *filename = __MAGIC_FILE__; -int main() { +int main() +{ + log_info("running 03_fs_readsync"); + int r = 0; uv_loop_t *loop = uv_default_loop(); - /* 1. Open file */ + /** + * Main Resources + * [official libuv documentation](http://docs.libuv.org/en/latest/index.html) *you should make use of the "Quick Search" box* + * [Unoffical libuv dox examples](https://github.com/thlorenz/libuv-dox/tree/master/examples) + * + * Resources + * [`uv_fs_open`](http://docs.libuv.org/en/latest/fs.html#c.uv_fs_open) + * [`uv_buf_init`](http://docs.libuv.org/en/latest/misc.html#c.uv_buf_init) + * [`uv_fs_read`](http://docs.libuv.org/en/latest/fs.html#c.uv_fs_read) + * [`uv_fs_close`](http://docs.libuv.org/en/latest/fs.html#c.uv_fs_close) + */ + + /** + * 1. Open file + * When opening a file pass O_RDONLY as the flags and S_IRUSR as the mode. + * All uv_fs_* methods pass back a signed integer that needs to be checked. If it is negative an error occurred. + * These checks have been added for you already, but pay close attention as in the future you will need to add them yourself. + */ uv_fs_t open_req; + r = uv_fs_open(loop, &open_req, filename, O_RDONLY, S_IRUSR, NULL); - if (r < 0) CHECK(r, "uv_fs_open"); + if (r < 0) + { + CHECK(r, "uv_fs_open"); + } /* 2. Create buffer and initialize it to turn it into a a uv_buf_t which adds length field */ - /* The + 1 is for the string null terminator, because log_report and log_info need it */ - /* Make sure you set your uv_buf_t size to BUF_SIZE instead of sizeof(buf) */ + /* The + 1 is for the string null terminator, because log_report and log_info need it */ + /* Make sure you set your uv_buf_t size to BUF_SIZE instead of sizeof(buf) */ char buf[BUF_SIZE + 1]; memset(buf, 0, sizeof(buf)); + uv_buf_t iov = uv_buf_init(buf, BUF_SIZE); /* 3. Use the file descriptor (the .result of the open_req) to read from the file into the buffer */ uv_fs_t read_req; + r = uv_fs_read(loop, &read_req, open_req.result, &iov, 1, 0, NULL); - if (r < 0) CHECK(r, "uv_fs_read"); + if (r < 0) + { + CHECK(r, "uv_fs_read"); + } /* 4. Report the contents of the buffer */ log_report("%s", buf); @@ -30,8 +59,12 @@ int main() { /* 5. Close the file descriptor (`open_req.result`) */ uv_fs_t close_req; + r = uv_fs_close(loop, &close_req, open_req.result, NULL); - if (r < 0) CHECK(r, "uv_fs_close"); + if (r < 0) + { + CHECK(r, "uv_fs_close"); + } /* always clean up your requests when you no longer need them to free unused memory */ uv_fs_req_cleanup(&open_req); From 80e28360767011059fb2ddeb1adbe8475e6ce9f5 Mon Sep 17 00:00:00 2001 From: "Naryshkin, Ilia" Date: Wed, 10 Jul 2024 12:37:04 +0300 Subject: [PATCH 04/25] 04_fs_readasync --- src/03_fs_readsync.c | 2 -- src/04_fs_readasync.c | 42 ++++++++++++++++++++++++++++++++++++------ 2 files changed, 36 insertions(+), 8 deletions(-) diff --git a/src/03_fs_readsync.c b/src/03_fs_readsync.c index c5066ac..482259d 100644 --- a/src/03_fs_readsync.c +++ b/src/03_fs_readsync.c @@ -54,13 +54,11 @@ int main() /* 4. Report the contents of the buffer */ log_report("%s", buf); - log_info("%s", buf); /* 5. Close the file descriptor (`open_req.result`) */ uv_fs_t close_req; r = uv_fs_close(loop, &close_req, open_req.result, NULL); - if (r < 0) { CHECK(r, "uv_fs_close"); diff --git a/src/04_fs_readasync.c b/src/04_fs_readasync.c index 16275ed..355c99d 100644 --- a/src/04_fs_readasync.c +++ b/src/04_fs_readasync.c @@ -7,9 +7,13 @@ static const char *filename = __MAGIC_FILE__; static uv_fs_t open_req; static uv_buf_t iov; -void read_cb(uv_fs_t* read_req) { +void read_cb(uv_fs_t *read_req) +{ int r = 0; - if (read_req->result < 0) CHECK(read_req->result, "uv_fs_read callback"); + if (read_req->result < 0) + { + CHECK(read_req->result, "uv_fs_read callback"); + } /* 4. Report the contents of the buffer */ log_report("%s", iov.base); @@ -17,25 +21,51 @@ void read_cb(uv_fs_t* read_req) { /* 5. Close the file descriptor */ uv_fs_t close_req; - if (r < 0) CHECK(r, "uv_fs_close"); + r = uv_fs_close(read_req->loop, &close_req, open_req.result, NULL); + if (r < 0) + { + CHECK(r, "uv_fs_close"); + } uv_fs_req_cleanup(&open_req); uv_fs_req_cleanup(read_req); uv_fs_req_cleanup(&close_req); } -int main() { +/** + * [`uv_fs_open`](http://docs.libuv.org/en/latest/fs.html#c.uv_fs_open) + * [`uv_buf_init`](http://docs.libuv.org/en/latest/misc.html#c.uv_buf_init) + * [`uv_fs_read`](http://docs.libuv.org/en/latest/fs.html#c.uv_fs_read) + * [`uv_fs_close`](http://docs.libuv.org/en/latest/fs.html#c.uv_fs_close) + * [`uv_read_cb`](http://docs.libuv.org/en/latest/stream.html#c.uv_read_cb) + * [`uv_fs_req_cleanup`](http://docs.libuv.org/en/latest/fs.html#c.uv_fs_req_cleanup) + */ +int main() +{ + log_info("running 04_fs_readasync"); + int r = 0; uv_loop_t *loop = uv_default_loop(); /* 1. Open file (synchronously) */ - if (r < 0) CHECK(r, "uv_fs_open"); + r = uv_fs_open(loop, &open_req, filename, O_RDONLY, S_IRUSR, NULL); + if (r < 0) + { + CHECK(r, "uv_fs_open"); + } /* 2. Create buffer and initialize it to turn it into a a uv_buf_t */ + char buf[BUF_SIZE + 1]; + memset(buf, 0, sizeof(buf)); + iov = uv_buf_init(buf, BUF_SIZE); /* 3. Use the file descriptor (the .result of the open_req) to read **aynchronously** from the file into the buffer */ uv_fs_t read_req; - if (r < 0) CHECK(r, "uv_fs_read"); + r = uv_fs_read(loop, &read_req, open_req.result, &iov, 1, 0, read_cb); + if (r < 0) + { + CHECK(r, "uv_fs_read"); + } uv_run(loop, UV_RUN_DEFAULT); From 8a9d163e8739e2fae91606ed59c0f0b7190f3afa Mon Sep 17 00:00:00 2001 From: "Naryshkin, Ilia" Date: Thu, 11 Jul 2024 22:40:08 +0300 Subject: [PATCH 05/25] 05_fs_readasync_context --- src/05_fs_readasync_context.c | 66 ++++++++++++++++++++++++++++------- 1 file changed, 54 insertions(+), 12 deletions(-) diff --git a/src/05_fs_readasync_context.c b/src/05_fs_readasync_context.c index 0597e98..2093548 100644 --- a/src/05_fs_readasync_context.c +++ b/src/05_fs_readasync_context.c @@ -3,27 +3,40 @@ #define BUF_SIZE 37 static const char *filename = __MAGIC_FILE__; -typedef struct context_struct { +typedef struct context_struct +{ uv_fs_t *open_req; uv_buf_t iov; } context_t; -void read_cb(uv_fs_t* read_req) { +void read_cb(uv_fs_t *read_req) +{ int r = 0; - if (read_req->result < 0) CHECK(read_req->result, "uv_fs_read callback"); + if (read_req->result < 0) + { + CHECK(read_req->result, "uv_fs_read callback"); + } /* extracting our context from the read_req */ - context_t* context = read_req->data; + context_t *context = read_req->data; /* 4. Report the contents of the buffer */ log_report("%s", context->iov.base); log_info("%s", context->iov.base); - free(context->iov.base); + /** + * TODO: Find out why freeing isn't working here. + * 05_fs_readasync_context(65289,0x1ea364c00) malloc: *** error for object 0x16fdfef02: pointer being freed was not allocated + */ + // free(context->iov.base); /* 5. Close the file descriptor (synchronously) */ uv_fs_t close_req; - if (r < 0) CHECK(abs(r), "uv_fs_close"); + r = uv_fs_close(read_req->loop, &close_req, context->open_req->result, NULL); + if (r < 0) + { + CHECK(r, "uv_fs_close"); + } /* cleanup all requests and context */ uv_fs_req_cleanup(context->open_req); @@ -32,29 +45,58 @@ void read_cb(uv_fs_t* read_req) { free(context); } -void init(uv_loop_t *loop) { +void init(uv_loop_t *loop) +{ int r = 0; - /* No more globals, we need to malloc each request and pass it around for later cleanup */ + /** + * We need to malloc these requests because if we would use automatic variables instead, they would be + * "automatically" deallocated once we leave the init function body. + * However we need them to stay around since the read_cb will be invoked asynchronously. + */ uv_fs_t *open_req = malloc(sizeof(uv_fs_t)); uv_fs_t *read_req = malloc(sizeof(uv_fs_t)); context_t *context = malloc(sizeof(context_t)); - context->open_req = open_req; + context->open_req = open_req; /* 1. Open file */ - if (r < 0) CHECK(r, "uv_fs_open"); + r = uv_fs_open(loop, open_req, filename, O_RDONLY, S_IRUSR, NULL); + if (r < 0) + { + CHECK(r, "uv_fs_open"); + } /* 2. Create buffer and initialize it to turn it into a a uv_buf_t */ + char buf[BUF_SIZE + 1]; + memset(buf, 0, sizeof(buf)); + uv_buf_t iov = uv_buf_init(buf, BUF_SIZE); + context->iov = iov; /* allow us to access the context inside read_cb */ read_req->data = context; /* 3. Read from the file into the buffer */ - if (r < 0) CHECK(r, "uv_fs_read"); + // r = uv_fs_read(loop, read_req, open_req, &iov, 1, 0, read_cb); + r = uv_fs_read(loop, read_req, open_req->result, &iov, 1, 0, read_cb); + if (r < 0) + { + CHECK(r, "uv_fs_read"); + } } -int main() { +/** + * [`uv_fs_open`](http://docs.libuv.org/en/latest/fs.html#c.uv_fs_open) + * [`uv_buf_init`](http://docs.libuv.org/en/latest/misc.html#c.uv_buf_init) + * [`uv_fs_read`](http://docs.libuv.org/en/latest/fs.html#c.uv_fs_read) + * [`uv_fs_close`](http://docs.libuv.org/en/latest/fs.html#c.uv_fs_close) + * [`uv_read_cb`](http://docs.libuv.org/en/latest/stream.html#c.uv_read_cb) + * [`uv_fs_req_cleanup`](http://docs.libuv.org/en/latest/fs.html#c.uv_fs_req_cleanup) + */ +int main() +{ + log_info("running 05_fs_readasync_context"); + uv_loop_t *loop = uv_default_loop(); init(loop); From d09a5465fd20ec491cbaf9b7dae37c3e1893258d Mon Sep 17 00:00:00 2001 From: "Naryshkin, Ilia" Date: Wed, 17 Jul 2024 22:01:30 +0300 Subject: [PATCH 06/25] 06_fs_allasync --- src/06_fs_allasync.c | 97 ++++++++++++++++++++++++++++++++------------ 1 file changed, 70 insertions(+), 27 deletions(-) diff --git a/src/06_fs_allasync.c b/src/06_fs_allasync.c index 49f2464..995f67b 100644 --- a/src/06_fs_allasync.c +++ b/src/06_fs_allasync.c @@ -3,58 +3,94 @@ #define BUF_SIZE 37 static const char *filename = __MAGIC_FILE__; +/** + * [`uv_fs_open`](http://docs.libuv.org/en/latest/fs.html#c.uv_fs_open) + * [`uv_buf_init`](http://docs.libuv.org/en/latest/misc.html#c.uv_buf_init) + * [`uv_fs_read`](http://docs.libuv.org/en/latest/fs.html#c.uv_fs_read) + * [`uv_fs_close`](http://docs.libuv.org/en/latest/fs.html#c.uv_fs_close) + * [`uv_read_cb`](http://docs.libuv.org/en/latest/stream.html#c.uv_read_cb) + * [`uv_fs_req_cleanup`](http://docs.libuv.org/en/latest/fs.html#c.uv_fs_req_cleanup) + */ + /* forward declarations */ -void open_cb(uv_fs_t*); -void read_cb(uv_fs_t*); -void close_cb(uv_fs_t*); +void open_cb(uv_fs_t *); +void read_cb(uv_fs_t *); +void close_cb(uv_fs_t *); -typedef struct context_struct { +typedef struct context_struct +{ uv_fs_t *open_req; uv_fs_t *read_req; uv_buf_t iov; } context_t; -void open_cb(uv_fs_t* open_req) { +void open_cb(uv_fs_t *open_req) +{ int r = 0; - if (open_req->result < 0) CHECK(open_req->result, "uv_fs_open callback"); + if (open_req->result < 0) + { + CHECK(open_req->result, "uv_fs_open callback"); + } - context_t* context = open_req->data; + context_t *context = open_req->data; /* 3. Create buffer and initialize it */ + char buf[BUF_SIZE + 1]; + memset(buf, 0, sizeof(buf)); + uv_buf_t iov = uv_buf_init(buf, BUF_SIZE); + context->iov = iov; /* 4. Setup read request */ - uv_fs_t *read_req = NULL; /* = malloc ... */ - context->read_req = NULL; /* = ? */ - read_req->data = NULL; /* = ? */ + uv_fs_t *read_req = malloc(sizeof(uv_fs_t)); + context->read_req = read_req; + read_req->data = context; /* 5. Read from the file into the buffer */ - if (r < 0) CHECK(r, "uv_fs_read"); + r = uv_fs_read(open_req->loop, read_req, open_req->result, &iov, 1, 0, read_cb); + if (r < 0) + { + CHECK(r, "uv_fs_read"); + } } -void read_cb(uv_fs_t* read_req) { - int r = 0;; - if (read_req->result < 0) CHECK(read_req->result, "uv_fs_read callback"); +void read_cb(uv_fs_t *read_req) +{ + int r = 0; + if (read_req->result < 0) + { + CHECK(read_req->result, "uv_fs_read callback"); + } - context_t* context = NULL; /* = ? */ + context_t *context = read_req->data; /* 6. Report the contents of the buffer */ log_report("%s", context->iov.base); log_info("%s", context->iov.base); - free(context->iov.base); + // free(context->iov.base); /* 7. Setup close request */ - uv_fs_t *close_req = NULL; - /* ? */ + // uv_fs_t close_req; + // close_req.data = context; + uv_fs_t *close_req = malloc(sizeof(uv_fs_t)); + close_req->data = context; /* 8. Close the file descriptor */ - if (r < 0) CHECK(r, "uv_fs_close"); + r = uv_fs_close(read_req->loop, close_req, context->open_req->result, close_cb); + if (r < 0) + { + CHECK(r, "uv_fs_close"); + } } -void close_cb(uv_fs_t* close_req) { - if (close_req->result < 0) CHECK(close_req->result, "uv_fs_close callback"); +void close_cb(uv_fs_t *close_req) +{ + if (close_req->result < 0) + { + CHECK(close_req->result, "uv_fs_close callback"); + } - context_t* context = NULL; + context_t *context = close_req->data; /* 9. Cleanup all requests and context */ uv_fs_req_cleanup(context->open_req); @@ -63,21 +99,28 @@ void close_cb(uv_fs_t* close_req) { free(context); } -void init(uv_loop_t *loop) { +void init(uv_loop_t *loop) +{ int r; - uv_fs_t *open_req = malloc(sizeof(uv_fs_t)); /* 1. Setup open request */ context_t *context = malloc(sizeof(context_t)); - context->open_req = open_req; + context->open_req = open_req; open_req->data = context; /* 2. Open file */ - if (r < 0) CHECK(r, "uv_fs_open"); + r = uv_fs_open(loop, open_req, filename, O_RDONLY, S_IRUSR, open_cb); + if (r < 0) + { + CHECK(r, "uv_fs_open"); + } } -int main() { +int main() +{ + log_info("running 06_fs_allasync"); + uv_loop_t *loop = uv_default_loop(); init(loop); From 606d461341349a7c12086cef525fcebc7581934f Mon Sep 17 00:00:00 2001 From: "Naryshkin, Ilia" Date: Mon, 22 Jul 2024 12:27:52 +0300 Subject: [PATCH 07/25] 07_tcp_echo_server --- .vscode/settings.json | 3 +- exercises/07_tcp_echo_server/exercise.js | 102 ++++++++++++---------- src/07_tcp_echo_server.c | 103 +++++++++++++++++------ 3 files changed, 135 insertions(+), 73 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index dd7741c..c7fe4e4 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -3,6 +3,7 @@ "*.gz": "json", "*.sql": "sql", ".*yml": "yaml", - "locale": "c" + "locale": "c", + "ios": "c" } } diff --git a/exercises/07_tcp_echo_server/exercise.js b/exercises/07_tcp_echo_server/exercise.js index 1dfc117..5dbb4b3 100644 --- a/exercises/07_tcp_echo_server/exercise.js +++ b/exercises/07_tcp_echo_server/exercise.js @@ -1,86 +1,98 @@ -'use strict'; -var net = require('net') - , colors = require('ansicolors') - , format = require('util').format - , table = require('text-table') +"use strict"; +var net = require("net"), + colors = require("ansicolors"), + format = require("util").format, + table = require("text-table"); -var HOST = '0.0.0.0' - , PORT = 7000; +var HOST = "0.0.0.0", + PORT = 7001; -var exercise = require('workshopper-exercise')() +var exercise = require("workshopper-exercise")(); exercise.requireSubmission = false; -exercise.addSetup(checkClientResponse); +exercise.addSetup(checkClientResponse); module.exports = exercise; function log() { - console.log(colors.green('progress ') + colors.brightBlack(format.apply(this, arguments))); + console.log( + colors.green("progress ") + + colors.brightBlack(format.apply(this, arguments)) + ); } function checkClientResponse(mode, cb) { var progress = { - connected : false - , responded : false - , correctResponse : false - , closed : false - , error : false - } + connected: false, + responded: false, + correctResponse: false, + closed: false, + error: false, + }; - var fail = false - , quit = false - , finished = false - , msg = 'Hello Server can you echo?' - , timeout + var fail = false, + quit = false, + finished = false, + msg = "Hello Server can you echo?", + timeout; function finish() { clearTimeout(timeout); if (finished) return; finished = true; - var arr = Object.keys(progress) - .reduce(function key(acc, k) { - if (k === 'error') { fail = fail || !!progress[k]; return acc } - fail = fail || !progress[k] - var label = colors.blue(k[0].toUpperCase() + k.slice(1)); - acc.push([ label, progress[k] ? colors.green('OK') : colors.red('NOT OK') ]) - return acc - }, []) + var arr = Object.keys(progress).reduce(function key(acc, k) { + if (k === "error") { + fail = fail || !!progress[k]; + return acc; + } + fail = fail || !progress[k]; + var label = colors.blue(k[0].toUpperCase() + k.slice(1)); + acc.push([ + label, + progress[k] ? colors.green("OK") : colors.red("NOT OK"), + ]); + return acc; + }, []); + + console.log("\n" + table(arr)); - console.log('\n' + table(arr)); - - if (progress.error) console.error('\nEncountered an error', progress.error); - cb(fail && mode === 'verify' ? new Error('Sorry something was not quite right yet :(') : null); + if (progress.error) console.error("\nEncountered an error", progress.error); + cb( + fail && mode === "verify" + ? new Error("Sorry something was not quite right yet :(") + : null + ); } // give up after 3s, i.e. if server is irresponsive or doesn't quit timeout = setTimeout(finish, 3000); var client = new net.Socket(); - log('Client connecting to server'); + log("Client connecting to server"); client .connect(PORT, HOST, function onconnection() { progress.connected = true; log('Client sending "%s"', msg); client.write(msg); - }) - .on('error', function onerror(err) { + }) + .on("error", function onerror(err) { progress.error = err; finish(); }) - .on('data', function ondata(data) { - progress.responded = true + .on("data", function ondata(data) { + progress.responded = true; var res = data.toString(); log('Server responded with "%s"', msg); - progress.correctResponse = (res === msg) + progress.correctResponse = res === msg; - log('Telling server to quit'); - client.write('QUIT'); + log("Telling server to quit"); + client.write("QUIT"); }) - .on('close', function onclose() { + .on("close", function onclose() { progress.closed = true; - log('Server closed connection') - finish() - }) + log("Server closed connection"); + finish(); + }); } diff --git a/src/07_tcp_echo_server.c b/src/07_tcp_echo_server.c index bdf0898..121345d 100644 --- a/src/07_tcp_echo_server.c +++ b/src/07_tcp_echo_server.c @@ -1,37 +1,42 @@ #include "learnuv.h" #include -const static char* HOST = "0.0.0.0"; /* localhost */ -const static int PORT = 7000; -const static int NBUFS = 1; /* number of buffers we write at once */ +const static char *HOST = "0.0.0.0"; /* localhost */ +const static int PORT = 7001; +const static int NBUFS = 1; /* number of buffers we write at once */ static uv_tcp_t tcp_server; -typedef struct { +typedef struct +{ uv_write_t req; uv_buf_t buf; } write_req_t; /* forward declarations */ -static void close_cb(uv_handle_t* client); -static void server_close_cb(uv_handle_t*); -static void shutdown_cb(uv_shutdown_t*, int); +static void close_cb(uv_handle_t *client); +static void server_close_cb(uv_handle_t *); +static void shutdown_cb(uv_shutdown_t *, int); -static void alloc_cb(uv_handle_t*, size_t, uv_buf_t*); -static void read_cb(uv_stream_t*, ssize_t, const uv_buf_t*); -static void write_cb(uv_write_t*, int); +static void alloc_cb(uv_handle_t *, size_t, uv_buf_t *); +static void read_cb(uv_stream_t *, ssize_t, const uv_buf_t *); +static void write_cb(uv_write_t *, int); -static void close_cb(uv_handle_t* client) { +static void close_cb(uv_handle_t *client) +{ free(client); log_info("Closed connection"); } -static void shutdown_cb(uv_shutdown_t* req, int status) { - uv_close((uv_handle_t*) req->handle, close_cb); +static void shutdown_cb(uv_shutdown_t *req, int status) +{ + // http://docs.libuv.org/en/latest/handle.html#c.uv_close + uv_close((uv_handle_t *)req->handle, close_cb); free(req); } -static void onconnection(uv_stream_t *server, int status) { +static void onconnection(uv_stream_t *server, int status) +{ CHECK(status, "onconnection"); int r = 0; @@ -41,36 +46,52 @@ static void onconnection(uv_stream_t *server, int status) { log_info("Accepting Connection"); /* 4.1. Init client connection using `server->loop`, passing the client handle */ + // http://docs.libuv.org/en/latest/tcp.html#c.uv_tcp_init uv_tcp_t *client = malloc(sizeof(uv_tcp_t)); + r = uv_tcp_init(server->loop, client); CHECK(r, "uv_tcp_init"); /* 4.2. Accept the now initialized client connection */ - if (r) { + // http://docs.libuv.org/en/latest/stream.html#c.uv_accept + r = uv_accept(server, (uv_stream_t *)client); + if (r) + { log_error("trying to accept connection %d", r); shutdown_req = malloc(sizeof(uv_shutdown_t)); - r = uv_shutdown(shutdown_req, (uv_stream_t*) client, shutdown_cb); + r = uv_shutdown(shutdown_req, (uv_stream_t *)client, shutdown_cb); CHECK(r, "uv_shutdown"); } /* 5. Start reading data from client */ + // http://docs.libuv.org/en/latest/stream.html#c.uv_read_start + r = uv_read_start((uv_stream_t *)client, alloc_cb, read_cb); CHECK(r, "uv_read_start"); } -static void alloc_cb(uv_handle_t *handle, size_t size, uv_buf_t *buf) { +static void alloc_cb(uv_handle_t *handle, size_t size, uv_buf_t *buf) +{ /* libuv suggests a buffer size but leaves it up to us to create one of any size we see fit */ buf->base = malloc(size); buf->len = size; - if (buf->base == NULL) log_error("alloc_cb buffer didn't properly initialize"); + if (buf->base == NULL) + { + log_error("alloc_cb buffer didn't properly initialize"); + } } -static void read_cb(uv_stream_t* client, ssize_t nread, const uv_buf_t* buf) { +static void read_cb(uv_stream_t *client, ssize_t nread, const uv_buf_t *buf) +{ int r = 0; uv_shutdown_t *shutdown_req; /* Errors or EOF */ - if (nread < 0) { - if (nread != UV_EOF) CHECK(nread, "read_cb"); + if (nread < 0) + { + if (nread != UV_EOF) + { + CHECK(nread, "read_cb"); + } /* Client signaled that all data has been sent, so we can close the connection and are done */ free(buf->base); @@ -81,19 +102,22 @@ static void read_cb(uv_stream_t* client, ssize_t nread, const uv_buf_t* buf) { return; } - if (nread == 0) { + if (nread == 0) + { /* Everything OK, but nothing read and thus we don't write anything */ free(buf->base); return; } /* Check if we should quit the server which the client signals by sending "QUIT" */ - if (!strncmp("QUIT", buf->base, fmin(nread, 4))) { + if (!strncmp("QUIT", buf->base, fmin(nread, 4))) + { log_info("Closing the server"); free(buf->base); /* Before exiting we need to properly close the server via uv_close */ /* We can do this synchronously */ - uv_close((uv_handle_t*) &tcp_server, NULL); + // http://docs.libuv.org/en/latest/handle.html#c.uv_close + uv_close((uv_handle_t *)&tcp_server, NULL); log_info("Closed server, exiting"); exit(0); } @@ -102,38 +126,63 @@ static void read_cb(uv_stream_t* client, ssize_t nread, const uv_buf_t* buf) { /* We wrap the write req and buf here in order to be able to clean them both later */ write_req_t *write_req = malloc(sizeof(write_req_t)); write_req->buf = uv_buf_init(buf->base, nread); + // https://docs.libuv.org/en/latest/stream.html#c.uv_write + r = uv_write(&write_req->req, client, &write_req->buf, NBUFS, write_cb); CHECK(r, "uv_write"); } -static void write_cb(uv_write_t *req, int status) { +static void write_cb(uv_write_t *req, int status) +{ CHECK(status, "write_cb"); log_info("Replied to client"); /* Since the req is the first field inside the wrapper write_req, we can just cast to it */ /* Basically we are telling C to include a bit more data starting at the same memory location, which in this case is our buf */ - write_req_t *write_req = (write_req_t*) req; + write_req_t *write_req = (write_req_t *)req; free(write_req->buf.base); free(write_req); } -int main() { +int main() +{ int r = 0; uv_loop_t *loop = uv_default_loop(); + // http://docs.libuv.org/en/latest/tcp.html + /* 1. Initialize TCP server */ + // http://docs.libuv.org/en/latest/tcp.html#c.uv_tcp_init r = uv_tcp_init(loop, &tcp_server); CHECK(r, "uv_tcp_init"); /* 2. Bind to localhost:7000 */ + // http://docs.libuv.org/en/latest/misc.html#c.uv_ip4_addr struct sockaddr_in addr; + r = uv_ip4_addr(HOST, PORT, &addr); CHECK(r, "uv_ip4_addr"); + // http://docs.libuv.org/en/latest/tcp.html#c.uv_tcp_bind + r = uv_tcp_bind(&tcp_server, (struct sockaddr *)&addr, AF_INET); CHECK(r, "uv_tcp_bind"); /* 3. Start listening */ /* uv_tcp_t inherits uv_stream_t so casting is ok */ + // http://docs.libuv.org/en/latest/tcp.html + // http://docs.libuv.org/en/latest/stream.html + // http://docs.libuv.org/en/latest/handle.html + // https://docs.libuv.org/en/latest/stream.html#c.uv_listen + r = uv_listen((uv_stream_t *)&tcp_server, SOMAXCONN, onconnection); CHECK(r, "uv_listen"); + + /* + * Use `nc localhost 7000` to test your server (finish via Ctrl-D) and/or stop the server by sending QUIT. +nc localhost 7001 +echo 'Hello, Netcat!' | nc localhost 7001 + + * You can also send entire files, i.e. `cat package.json | netcat localhost 7000`. +cat package.json | netcat localhost 7001 + */ log_info("Listening on %s:%d", HOST, PORT); uv_run(loop, UV_RUN_DEFAULT); From f3befa03daf72d85662572250810fe23df73eff5 Mon Sep 17 00:00:00 2001 From: "Naryshkin, Ilia" Date: Mon, 22 Jul 2024 14:07:58 +0300 Subject: [PATCH 08/25] 08_horse_race --- .gitignore | 4 ++ .vscode/settings.json | 6 +- src/08_horse_race.c | 146 ++++++++++++++++++++++++++++-------------- 3 files changed, 106 insertions(+), 50 deletions(-) diff --git a/.gitignore b/.gitignore index 6360c78..3d1ac77 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,7 @@ +.vscode +.idea +.history + lib-cov *.seed *.log diff --git a/.vscode/settings.json b/.vscode/settings.json index c7fe4e4..75c3550 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -4,6 +4,10 @@ "*.sql": "sql", ".*yml": "yaml", "locale": "c", - "ios": "c" + "ios": "c", + "array": "c", + "string": "c", + "string_view": "c", + "vector": "c" } } diff --git a/src/08_horse_race.c b/src/08_horse_race.c index 9712414..02137b7 100644 --- a/src/08_horse_race.c +++ b/src/08_horse_race.c @@ -6,49 +6,54 @@ #include #include -#define HORSE_WIDTH 29 +#define HORSE_WIDTH 29 #define HORSE_HEIGHT 11 -#define TRACK_WIDTH 110 -#define TRACKS 5 -#define THREADS "5" +#define TRACK_WIDTH 110 // 110 +#define TRACKS 5 // 5 +#define THREADS "5" // 5 -#define DRAW 1 +// http://tldp.org/HOWTO/NCURSES-Programming-HOWTO +// http://www.gnu.org/software/ncurses/ncurses.html +#define DRAW 0 // curses isn't working for me. Set to 0 to see log output. -typedef struct { +typedef struct +{ uv_async_t async; - char* name; + char *name; int color; int track; int speed; int position; } horse_t; -const static char* horse_pic[HORSE_HEIGHT] = { - " ,***, ", - " ,***` *==--", - " ,**`( '| ", - " ,**@ /v_/ ", - " ,*.-'''--*** '@@__ ", - " **/ |__`v ", - " .*'v | v / // ", - " ,*' > .'----v | [/ ", - " < <<` || ", - " `vvv || ", - " )vv )v " -}; +const static char *horse_pic[HORSE_HEIGHT] = { + " ,***, ", + " ,***` *==--", + " ,**`( '| ", + " ,**@ /v_/ ", + " ,*.-'''--*** '@@__ ", + " **/ |__`v ", + " .*'v | v / // ", + " ,*' > .'----v | [/ ", + " < <<` || ", + " `vvv || ", + " )vv )v "}; static horse_t horses[TRACKS] = { - { .name = "bnoordhuis " , .color = 1, .track = 0, .position = 0 }, - { .name = "piscisaureus" , .color = 2, .track = 1, .position = 0 }, - { .name = "ry " , .color = 3, .track = 2, .position = 0 }, - { .name = "saghul " , .color = 4, .track = 3, .position = 0 }, - { .name = "indutny " , .color = 5, .track = 4, .position = 0 } -}; + {.name = "bnoordhuis ", .color = 1, .track = 0, .position = 0}, + {.name = "piscisaureus", .color = 2, .track = 1, .position = 0}, + {.name = "ry ", .color = 3, .track = 2, .position = 0}, + {.name = "saghul ", .color = 4, .track = 3, .position = 0}, + {.name = "indutny ", .color = 5, .track = 4, .position = 0}}; int placement = 1; -static void load_color_palette() { - if (!has_colors()) return; +static void load_color_palette() +{ + if (!has_colors()) + { + return; + } use_default_colors(); start_color(); @@ -59,7 +64,8 @@ static void load_color_palette() { init_pair(5, COLOR_YELLOW, -1); } -static void init_screen() { +static void init_screen() +{ initscr(); curs_set(FALSE); raw(); @@ -68,67 +74,102 @@ static void init_screen() { load_color_palette(); } -void draw_horse(horse_t *horse) { - if (!DRAW) { +void draw_horse(horse_t *horse) +{ + if (!DRAW) + { log_info("Horse %s\ttrack: %d\t position: %d", horse->name, horse->track, horse->position); return; } int i; attrset(COLOR_PAIR(horse->color)); - for (i = 0; i < HORSE_HEIGHT; i++) { + for (i = 0; i < HORSE_HEIGHT; i++) + { mvprintw((horse->track * HORSE_HEIGHT) + i, horse->position, horse_pic[i]); } refresh(); } -void progress_cb(uv_async_t* async) { +void progress_cb(uv_async_t *async) +{ horse_t *horse = async->data; draw_horse(horse); } -void race_cb(uv_work_t* work_req) { +void race_cb(uv_work_t *work_req) +{ + int r = 0; horse_t *horse = work_req->data; double speed = 10; int i; - for (i = 0; i < TRACK_WIDTH; i++) { + for (i = 0; i < TRACK_WIDTH; i++) + { horse->position++; /* 3. Send progress report so we can redraw the position of the horse every time its position changed */ + // http://docs.libuv.org/en/latest/async.html#c.uv_async_send + r = uv_async_send(&horse->async); + CHECK(r, "uv_async_send"); speed += ((rand() % 5) - 2); /* whiplash in case our horse starts slowing down too much */ - if (speed < 5) speed = 7; + if (speed < 5) + { + speed = 7; + } - usleep(1E6/speed); + usleep(1E6 / speed); } } -void finished_race_cb(uv_work_t* work_req, int status) { +void finished_race_cb(uv_work_t *work_req, int status) +{ CHECK(status, "finished_race_cb"); horse_t *horse = work_req->data; - if (!DRAW) log_info("Horse %s finished race", horse->name); - log_report("Horse %s finished in place %d", horse->name, placement++); - uv_close((uv_handle_t*) &horse->async, NULL); + + if (!DRAW) + { + log_info("Horse %s finished in place %d", horse->name, placement); + } + log_report("Horse %s finished in place %d", horse->name, placement); + + placement++; + + // https://docs.libuv.org/en/latest/handle.html#c.uv_close + uv_close((uv_handle_t *)&horse->async, NULL); } -void add_horse(uv_loop_t* loop, int track) { +void add_horse(uv_loop_t *loop, int track) +{ + int r = 0; horse_t *horse = horses + track; - uv_work_t* work_req = malloc(sizeof(uv_work_t)); + // https://docs.libuv.org/en/latest/threadpool.html + uv_work_t *work_req = malloc(sizeof(uv_work_t)); work_req->data = horse; horse->async.data = horse; /* 1. Init async worker (attached to our horse) passing a callback to report progress */ + // http://docs.libuv.org/en/latest/async.html#c.uv_async_init + r = uv_async_init(loop, &horse->async, progress_cb); + CHECK(r, "uv_async_init"); /* 2. Queue work for our worker passing the right callbacks */ + // http://docs.libuv.org/en/latest/threadpool.html#c.uv_queue_work + r = uv_queue_work(loop, (uv_work_t *)work_req, race_cb, finished_race_cb); + CHECK(r, "uv_async_init"); - if (!DRAW) log_info("Queued horse %s on track: %d", horse->name, horse->track); + if (!DRAW) + { + log_info("Queued horse %s on track: %d", horse->name, horse->track); + } } -int main(void) { +int main(void) +{ int i; /* Ensure that each horse gets its own thread, the default libuv threadpool size is 4 */ @@ -136,16 +177,23 @@ int main(void) { srand(time(NULL)); - uv_loop_t* loop = uv_default_loop(); + uv_loop_t *loop = uv_default_loop(); - if (DRAW) init_screen(); + if (DRAW) + { + init_screen(); + } - for (i = 0; i < TRACKS; i++) { + for (i = 0; i < TRACKS; i++) + { add_horse(loop, i); } uv_run(loop, UV_RUN_DEFAULT); - if (DRAW) endwin(); + if (DRAW) + { + endwin(); + } return 0; } From 0e7f06c8fe26ab9ccb8f1c8ee74c73ba1cee649e Mon Sep 17 00:00:00 2001 From: "Naryshkin, Ilia" Date: Mon, 22 Jul 2024 19:00:26 +0300 Subject: [PATCH 09/25] interactive_horse_race --- .vscode/settings.json | 3 +- exercises/07_tcp_echo_server/problem.md | 6 +- exercises/07_tcp_echo_server/solution.c | 78 ++++++---- exercises/interactive_horse_race/problem.md | 8 +- src/07_tcp_echo_server.c | 6 +- src/08_horse_race.c | 11 +- .../interactive_horse_race.c | 66 ++++---- .../interactive_horse_race.h | 106 ++++++------- src/interactive_horse_race/questions.c | 95 +++++++----- src/interactive_horse_race/tcp_server.c | 141 ++++++++++-------- src/interactive_horse_race/track.c | 93 +++++++----- 11 files changed, 342 insertions(+), 271 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 75c3550..1a622ca 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -8,6 +8,7 @@ "array": "c", "string": "c", "string_view": "c", - "vector": "c" + "vector": "c", + "learnuv.h": "c" } } diff --git a/exercises/07_tcp_echo_server/problem.md b/exercises/07_tcp_echo_server/problem.md index 7b46cd6..04e09cb 100644 --- a/exercises/07_tcp_echo_server/problem.md +++ b/exercises/07_tcp_echo_server/problem.md @@ -13,7 +13,7 @@ So lets start with the easy part. ### Starting the Server and Listening on a Port -First of all we need to initialize our server `tcp_server`. +First of all we need to initialize our server `tcp_server`. This is done via [`uv_tcp_init`](http://docs.libuv.org/en/latest/tcp.html#c.uv_tcp_init). Our server represents the TCP `handle`. @@ -57,8 +57,8 @@ you to carefully read through the code and understand the concepts and technique ## Hint -Use `nc localhost 7000` to test your server (finish via `Ctrl-D`) and/or stop the server by sending `QUIT`. -You can also send entire files, i.e. `cat package.json | netcat localhost 7000`. +Use `nc localhost 7001` to test your server (finish via `Ctrl-D`) and/or stop the server by sending `QUIT`. +You can also send entire files, i.e. `cat package.json | netcat localhost 7001`. On windows you may have to use telnet or putty. diff --git a/exercises/07_tcp_echo_server/solution.c b/exercises/07_tcp_echo_server/solution.c index 0a522a5..4b1f96b 100644 --- a/exercises/07_tcp_echo_server/solution.c +++ b/exercises/07_tcp_echo_server/solution.c @@ -1,37 +1,41 @@ #include "learnuv.h" #include -const static char* HOST = "0.0.0.0"; /* localhost */ -const static int PORT = 7000; -const static int NBUFS = 1; /* number of buffers we write at once */ +const static char *HOST = "0.0.0.0"; /* localhost */ +const static int PORT = 7001; +const static int NBUFS = 1; /* number of buffers we write at once */ static uv_tcp_t tcp_server; -typedef struct { +typedef struct +{ uv_write_t req; uv_buf_t buf; } write_req_t; /* forward declarations */ -static void close_cb(uv_handle_t* client); -static void server_close_cb(uv_handle_t*); -static void shutdown_cb(uv_shutdown_t*, int); +static void close_cb(uv_handle_t *client); +static void server_close_cb(uv_handle_t *); +static void shutdown_cb(uv_shutdown_t *, int); -static void alloc_cb(uv_handle_t*, size_t, uv_buf_t*); -static void read_cb(uv_stream_t*, ssize_t, const uv_buf_t*); -static void write_cb(uv_write_t*, int); +static void alloc_cb(uv_handle_t *, size_t, uv_buf_t *); +static void read_cb(uv_stream_t *, ssize_t, const uv_buf_t *); +static void write_cb(uv_write_t *, int); -static void close_cb(uv_handle_t* client) { +static void close_cb(uv_handle_t *client) +{ free(client); log_info("Closed connection"); } -static void shutdown_cb(uv_shutdown_t* req, int status) { - uv_close((uv_handle_t*) req->handle, close_cb); +static void shutdown_cb(uv_shutdown_t *req, int status) +{ + uv_close((uv_handle_t *)req->handle, close_cb); free(req); } -static void onconnection(uv_stream_t *server, int status) { +static void onconnection(uv_stream_t *server, int status) +{ CHECK(status, "onconnection"); int r = 0; @@ -46,34 +50,40 @@ static void onconnection(uv_stream_t *server, int status) { CHECK(r, "uv_tcp_init"); /* 4.2. Accept the now initialized client connection */ - r = uv_accept(server, (uv_stream_t*) client); - if (r) { + r = uv_accept(server, (uv_stream_t *)client); + if (r) + { log_error("trying to accept connection %d", r); shutdown_req = malloc(sizeof(uv_shutdown_t)); - r = uv_shutdown(shutdown_req, (uv_stream_t*) client, shutdown_cb); + r = uv_shutdown(shutdown_req, (uv_stream_t *)client, shutdown_cb); CHECK(r, "uv_shutdown"); } /* 5. Start reading data from client */ - r = uv_read_start((uv_stream_t*) client, alloc_cb, read_cb); + r = uv_read_start((uv_stream_t *)client, alloc_cb, read_cb); CHECK(r, "uv_read_start"); } -static void alloc_cb(uv_handle_t *handle, size_t size, uv_buf_t *buf) { +static void alloc_cb(uv_handle_t *handle, size_t size, uv_buf_t *buf) +{ /* libuv suggests a buffer size but leaves it up to us to create one of any size we see fit */ buf->base = malloc(size); buf->len = size; - if (buf->base == NULL) log_error("alloc_cb buffer didn't properly initialize"); + if (buf->base == NULL) + log_error("alloc_cb buffer didn't properly initialize"); } -static void read_cb(uv_stream_t* client, ssize_t nread, const uv_buf_t* buf) { +static void read_cb(uv_stream_t *client, ssize_t nread, const uv_buf_t *buf) +{ int r = 0; uv_shutdown_t *shutdown_req; /* Errors or EOF */ - if (nread < 0) { - if (nread != UV_EOF) CHECK(nread, "read_cb"); + if (nread < 0) + { + if (nread != UV_EOF) + CHECK(nread, "read_cb"); /* Client signaled that all data has been sent, so we can close the connection and are done */ free(buf->base); @@ -84,19 +94,21 @@ static void read_cb(uv_stream_t* client, ssize_t nread, const uv_buf_t* buf) { return; } - if (nread == 0) { + if (nread == 0) + { /* Everything OK, but nothing read and thus we don't write anything */ free(buf->base); return; } /* Check if we should quit the server which the client signals by sending "QUIT" */ - if (!strncmp("QUIT", buf->base, fmin(nread, 4))) { + if (!strncmp("QUIT", buf->base, fmin(nread, 4))) + { log_info("Closing the server"); free(buf->base); /* Before exiting we need to properly close the server via uv_close */ /* We can do this synchronously */ - uv_close((uv_handle_t*) &tcp_server, NULL); + uv_close((uv_handle_t *)&tcp_server, NULL); log_info("Closed server, exiting"); exit(0); } @@ -109,19 +121,21 @@ static void read_cb(uv_stream_t* client, ssize_t nread, const uv_buf_t* buf) { CHECK(r, "uv_write"); } -static void write_cb(uv_write_t *req, int status) { +static void write_cb(uv_write_t *req, int status) +{ CHECK(status, "write_cb"); log_info("Replied to client"); /* Since the req is the first field inside the wrapper write_req, we can just cast to it */ /* Basically we are telling C to include a bit more data starting at the same memory location, which in this case is our buf */ - write_req_t *write_req = (write_req_t*) req; + write_req_t *write_req = (write_req_t *)req; free(write_req->buf.base); free(write_req); } -int main() { +int main() +{ int r = 0; uv_loop_t *loop = uv_default_loop(); @@ -129,17 +143,17 @@ int main() { r = uv_tcp_init(loop, &tcp_server); CHECK(r, "uv_tcp_init"); - /* 2. Bind to localhost:7000 */ + /* 2. Bind to localhost:7001 */ struct sockaddr_in addr; r = uv_ip4_addr(HOST, PORT, &addr); CHECK(r, "uv_ip4_addr"); - r = uv_tcp_bind(&tcp_server, (struct sockaddr*) &addr, AF_INET); + r = uv_tcp_bind(&tcp_server, (struct sockaddr *)&addr, AF_INET); CHECK(r, "uv_tcp_bind"); /* 3. Start listening */ /* uv_tcp_t inherits uv_stream_t so casting is ok */ - r = uv_listen((uv_stream_t*) &tcp_server, SOMAXCONN, onconnection); + r = uv_listen((uv_stream_t *)&tcp_server, SOMAXCONN, onconnection); CHECK(r, "uv_listen"); log_info("Listening on %s:%d", HOST, PORT); diff --git a/exercises/interactive_horse_race/problem.md b/exercises/interactive_horse_race/problem.md index c002fb8..22885b4 100644 --- a/exercises/interactive_horse_race/problem.md +++ b/exercises/interactive_horse_race/problem.md @@ -1,10 +1,10 @@ -# interactive horse race +# interactive horse race This is the one exercise where all you have to do is **have fun**! You earned it! ## Launching the horse race -Start the `interactive_horse_race` and then connect **5** players via `nc localhost 7000`. +Start the `interactive_horse_race` and then connect **5** players via `nc localhost 7001`. Once enough players are connected, the race begins. ## The rules @@ -18,7 +18,7 @@ Whoever reaches the end of the track first wins. This is the exercise where a lot of things we learned before come together to create this silly little game. One thing to notice is that now **we don't use threads for our horses** since really we aren't calculating much to move -them. +them. Instead we use `idle` callbacks (remember the second exercise) in order to update their position. This of course means we are doing so on the main thread and can draw the horse without dispatching. @@ -59,7 +59,7 @@ The very keen of you may have detected some memory leaks in our game. You are pe I challenge you to fix them using [valgrind](http://valgrind.org/) to detect them. I'll be honest with you though. Properly cleaning up what you allocate can be quite challenging especially in async code -we use with libuv. +we use with libuv. We have seen how to do this properly for smaller examples, however in this case I just did not have the time to do this properly for our horse race. diff --git a/src/07_tcp_echo_server.c b/src/07_tcp_echo_server.c index 121345d..45e7500 100644 --- a/src/07_tcp_echo_server.c +++ b/src/07_tcp_echo_server.c @@ -156,7 +156,7 @@ int main() r = uv_tcp_init(loop, &tcp_server); CHECK(r, "uv_tcp_init"); - /* 2. Bind to localhost:7000 */ + /* 2. Bind to localhost:7001 */ // http://docs.libuv.org/en/latest/misc.html#c.uv_ip4_addr struct sockaddr_in addr; r = uv_ip4_addr(HOST, PORT, &addr); @@ -176,11 +176,11 @@ int main() CHECK(r, "uv_listen"); /* - * Use `nc localhost 7000` to test your server (finish via Ctrl-D) and/or stop the server by sending QUIT. + * Use `nc localhost 7001` to test your server (finish via Ctrl-D) and/or stop the server by sending QUIT. nc localhost 7001 echo 'Hello, Netcat!' | nc localhost 7001 - * You can also send entire files, i.e. `cat package.json | netcat localhost 7000`. + * You can also send entire files, i.e. `cat package.json | netcat localhost 7001`. cat package.json | netcat localhost 7001 */ log_info("Listening on %s:%d", HOST, PORT); diff --git a/src/08_horse_race.c b/src/08_horse_race.c index 02137b7..3c53e72 100644 --- a/src/08_horse_race.c +++ b/src/08_horse_race.c @@ -9,8 +9,8 @@ #define HORSE_WIDTH 29 #define HORSE_HEIGHT 11 #define TRACK_WIDTH 110 // 110 -#define TRACKS 5 // 5 -#define THREADS "5" // 5 +#define TRACKS 5 // 5 +#define THREADS "5" // 5 // http://tldp.org/HOWTO/NCURSES-Programming-HOWTO // http://www.gnu.org/software/ncurses/ncurses.html @@ -95,6 +95,7 @@ void progress_cb(uv_async_t *async) { horse_t *horse = async->data; draw_horse(horse); + return; } void race_cb(uv_work_t *work_req) @@ -132,11 +133,11 @@ void finished_race_cb(uv_work_t *work_req, int status) if (!DRAW) { - log_info("Horse %s finished in place %d", horse->name, placement); + log_info("Horse %s finished in place %d\ttrack: %d", horse->name, placement, horse->track); } log_report("Horse %s finished in place %d", horse->name, placement); - - placement++; + + placement++; // https://docs.libuv.org/en/latest/handle.html#c.uv_close uv_close((uv_handle_t *)&horse->async, NULL); diff --git a/src/interactive_horse_race/interactive_horse_race.c b/src/interactive_horse_race/interactive_horse_race.c index 2960fe9..3f0dccd 100644 --- a/src/interactive_horse_race/interactive_horse_race.c +++ b/src/interactive_horse_race/interactive_horse_race.c @@ -7,28 +7,34 @@ #define to_s(x) #x #define THREADS to_s(TRACKS) -#define HOST "0.0.0.0" /* localhost */ -#define PORT 7000 +#define HOST "0.0.0.0" /* localhost */ +#define PORT 7001 -static void start_game(uv_loop_t* loop, luv_game_t* game) { +static void start_game(uv_loop_t *loop, luv_game_t *game) +{ log_info("Initializing track"); track_init(loop, game->server->clients, game->server->num_clients); game->in_progress = 1; game->delay = DELAY; } -static void question_handler(uv_idle_t* handle) { +static void question_handler(uv_idle_t *handle) +{ luv_game_t *game = handle->data; luv_server_t *server = game->server; - if (!game->in_progress) { - if (server->num_clients < MAX_CLIENTS) return; + if (!game->in_progress) + { + if (server->num_clients < MAX_CLIENTS) + return; log_info("Starting the race"); luv_server_broadcast(server, "\nAll tracks filled, let the race begin!\n"); start_game(handle->loop, game); } - if (game->question_asked) { - if (--game->time_to_answer > 0) return; + if (game->question_asked) + { + if (--game->time_to_answer > 0) + return; luv_server_broadcast(server, "\nWay too slow guys! Next question.\n"); game->question_asked = 0; } @@ -40,7 +46,8 @@ static void question_handler(uv_idle_t* handle) { luv_server_broadcast(server, "\n%s\n ? ", game->question.question); } -static void onclient_connected(luv_client_t* client, int total_connections) { +static void onclient_connected(luv_client_t *client, int total_connections) +{ luv_server_t *server = client->server; /* todo: update track if client gets moved to different slot */ @@ -51,23 +58,25 @@ static void onclient_connected(luv_client_t* client, int total_connections) { log_info("New player, %d total now.", total_connections); luv_server_broadcast(client->server, - "Welcome player %d!\nWe now have a total of %d players.\n", - client->id, total_connections); + "Welcome player %d!\nWe now have a total of %d players.\n", + client->id, total_connections); char client_msg[MAX_MSG]; snprintf(client_msg, MAX_MSG, - "Welcome to the game, you are on track %d\n", player->track + 1); + "Welcome to the game, you are on track %d\n", player->track + 1); luv_server_send(server, client, client_msg, strlen(client_msg)); } -static void onclient_disconnected(luv_client_t* client, int total_connections) { +static void onclient_disconnected(luv_client_t *client, int total_connections) +{ log_info("Player %d quit, %d total now.", client->id, total_connections); luv_server_broadcast(client->server, - "Player quit %d :(\nWe have %d players left.\n", - client->id, total_connections); + "Player quit %d :(\nWe have %d players left.\n", + client->id, total_connections); } -static void onclient_msg(luv_client_msg_t* msg, luv_onclient_msg_processed respond) { +static void onclient_msg(luv_client_msg_t *msg, luv_onclient_msg_processed respond) +{ luv_client_t *client = msg->client; log_info("Got message %s from client %d", msg->buf, msg->client->id); @@ -75,7 +84,8 @@ static void onclient_msg(luv_client_msg_t* msg, luv_onclient_msg_processed respo luv_game_t *game = server->data; luv_player_t *player = client->data; - if (!game->in_progress) { + if (!game->in_progress) + { respond(msg, "Be patient, the game hasn't started yet.\n"); return; } @@ -87,20 +97,24 @@ static void onclient_msg(luv_client_msg_t* msg, luv_onclient_msg_processed respo char res[MAX_MSG]; - if (!strncasecmp(correct, given, fmin(correct_len, given_len))) { + if (!strncasecmp(correct, given, fmin(correct_len, given_len))) + { player->speed++; sprintf(res, "Your answer is correct! Your speed is now %d\n", player->speed); game->question_asked = 0; - } else { + } + else + { player->speed = fmax(0, player->speed - 1); - sprintf(res, "Your answer is wrong! Your speed is now %d\n\n%s\n ? ",player->speed, game->question.question); + sprintf(res, "Your answer is wrong! Your speed is now %d\n\n%s\n ? ", player->speed, game->question.question); } respond(msg, res); } -int main(void) { +int main(void) +{ uv_loop_t *loop = uv_default_loop(); /* Ensure that each horse gets its own thread, the default libuv threadpool size is 4 */ @@ -113,19 +127,13 @@ int main(void) { log_info("Creating server"); luv_server_t server; luv_server_init( - &server - , loop - , HOST - , PORT - , onclient_connected - , onclient_disconnected - , onclient_msg); + &server, loop, HOST, PORT, onclient_connected, onclient_disconnected, onclient_msg); log_info("Starting server"); luv_server_start(&server, loop); log_info("Initializing game loop"); - luv_game_t game = { .server = &server, .delay = DELAY }; + luv_game_t game = {.server = &server, .delay = DELAY}; server.data = &game; uv_idle_t question_handle; diff --git a/src/interactive_horse_race/interactive_horse_race.h b/src/interactive_horse_race/interactive_horse_race.h index c07cf91..ac3b3f4 100644 --- a/src/interactive_horse_race/interactive_horse_race.h +++ b/src/interactive_horse_race/interactive_horse_race.h @@ -6,7 +6,7 @@ */ /* set to 0 in order to not draw but log messages instead */ -#define DRAW 1 +#define DRAW 0 #define MAX_MSG 1024 #if DRAW == 1 @@ -15,8 +15,8 @@ #include "learnuv.h" -#define DELAY 1E6 -#define MAX_SPEED 20 +#define DELAY 1E6 +#define MAX_SPEED 20 #define QUESTION_LEN 256 /* @@ -25,69 +25,69 @@ #define MAX_CLIENTS 2 -#define luv_server_broadcast(s, fmt, ...) do { \ - int i, __len; \ - char msg[MAX_MSG]; \ - snprintf(msg, MAX_MSG, fmt, ##__VA_ARGS__); \ - __len = strlen(msg); \ - for (i = 0; i < (s)->num_clients; i++) \ - luv_server_send((s), (s)->clients[i], msg, __len); \ -} while(0) +#define luv_server_broadcast(s, fmt, ...) \ + do \ + { \ + int i, __len; \ + char msg[MAX_MSG]; \ + snprintf(msg, MAX_MSG, fmt, ##__VA_ARGS__); \ + __len = strlen(msg); \ + for (i = 0; i < (s)->num_clients; i++) \ + luv_server_send((s), (s)->clients[i], msg, __len); \ + } while (0) typedef struct luv_server_s luv_server_t; -typedef struct { - uv_tcp_t connection; - int id; - int slot; - luv_server_t* server; - void* data; +typedef struct +{ + uv_tcp_t connection; + int id; + int slot; + luv_server_t *server; + void *data; } luv_client_t; -typedef struct { - char* buf; - size_t len; - luv_client_t* client; +typedef struct +{ + char *buf; + size_t len; + luv_client_t *client; } luv_client_msg_t; -typedef void (*luv_onclient_msg_processed)(luv_client_msg_t*, char*); -typedef void (*luv_onclient_msg)(luv_client_msg_t*, luv_onclient_msg_processed); -typedef void (*luv_onclient_connected)(luv_client_t*, int); -typedef void (*luv_onclient_disconnected)(luv_client_t*, int); +typedef void (*luv_onclient_msg_processed)(luv_client_msg_t *, char *); +typedef void (*luv_onclient_msg)(luv_client_msg_t *, luv_onclient_msg_processed); +typedef void (*luv_onclient_connected)(luv_client_t *, int); +typedef void (*luv_onclient_disconnected)(luv_client_t *, int); /* server inherits uv_tcp_t since its the first field */ -struct luv_server_s { - uv_tcp_t tcp; - const char* host; - int port; - luv_client_t* clients[MAX_CLIENTS]; - int num_clients; - int ids; - void* data; +struct luv_server_s +{ + uv_tcp_t tcp; + const char *host; + int port; + luv_client_t *clients[MAX_CLIENTS]; + int num_clients; + int ids; + void *data; /* events */ luv_onclient_connected onclient_connected; luv_onclient_disconnected onclient_disconnected; luv_onclient_msg onclient_msg; }; -void luv_server_send(luv_server_t* self, luv_client_t* client, char* msg, int len); -void luv_server_destroy(luv_server_t*); -void luv_server_start(luv_server_t*, uv_loop_t*); +void luv_server_send(luv_server_t *self, luv_client_t *client, char *msg, int len); +void luv_server_destroy(luv_server_t *); +void luv_server_start(luv_server_t *, uv_loop_t *); void luv_server_init( - luv_server_t* self - , uv_loop_t *loop - , const char* host - , int port - , luv_onclient_connected onclient_connected - , luv_onclient_disconnected onclient_disconnected - , luv_onclient_msg onclient_msg); + luv_server_t *self, uv_loop_t *loop, const char *host, int port, luv_onclient_connected onclient_connected, luv_onclient_disconnected onclient_disconnected, luv_onclient_msg onclient_msg); /* * Questions */ -typedef struct { +typedef struct +{ char question[QUESTION_LEN]; char answer[QUESTION_LEN]; } luv_question_t; @@ -99,15 +99,16 @@ luv_question_t luv_questions_get(); * Game */ -typedef struct { - char* name; +typedef struct +{ + char *name; int color; int track; int position; } luv_horse_t; - -typedef struct { +typedef struct +{ luv_client_t *client; luv_horse_t *horse; int color; @@ -116,8 +117,9 @@ typedef struct { int position; } luv_player_t; -typedef struct { - luv_server_t* server; +typedef struct +{ + luv_server_t *server; int in_progress; int question_asked; luv_question_t question; @@ -129,7 +131,7 @@ typedef struct { * Track */ -void track_handler(uv_idle_t*); -void track_init(uv_loop_t*, luv_client_t**, int); +void track_handler(uv_idle_t *); +void track_init(uv_loop_t *, luv_client_t **, int); #endif diff --git a/src/interactive_horse_race/questions.c b/src/interactive_horse_race/questions.c index 34044fc..baa3823 100644 --- a/src/interactive_horse_race/questions.c +++ b/src/interactive_horse_race/questions.c @@ -8,51 +8,60 @@ luv_question_t math_questions[MATH_QUESTIONS_LEN]; luv_question_t conversion_questions[CONVERSION_QUESTIONS_LEN]; const luv_question_t canned_questions[CANNED_QUESTIONS_LEN] = { - { "You wake up in a forrest and are surrounded by vines. A gate is to the north." , "N" } , - { "What is the library that powers Node.js" , "libuv" }, - { "What is the language libuv is implemented in", "C" }, - { "What is the language v8 is implemented in", "C++" }, - { "At what conference was learnuv first used as a workshopper", "campjs" }, - { "What is the first name of the campjs curator", "Tim" }, - { "What is the first name of the Node.js creator", "Ryan" }, - { "C function used to allocate memory", "malloc" }, - { "C function used to release memory", "free" }, + {"You wake up in a forrest and are surrounded by vines. A gate is to the north.", "N"}, + {"What is the library that powers Node.js", "libuv"}, + {"What is the language libuv is implemented in", "C"}, + {"What is the language v8 is implemented in", "C++"}, + {"At what conference was learnuv first used as a workshopper", "campjs"}, + {"What is the first name of the campjs curator", "Tim"}, + {"What is the first name of the Node.js creator", "Ryan"}, + {"C function used to allocate memory", "malloc"}, + {"C function used to release memory", "free"}, }; -static luv_question_t get_canned_question() { +static luv_question_t get_canned_question() +{ return canned_questions[rand() % CANNED_QUESTIONS_LEN]; } -static luv_question_t get_conversion_question() { +static luv_question_t get_conversion_question() +{ return conversion_questions[rand() % CONVERSION_QUESTIONS_LEN]; } -static luv_question_t get_math_question() { +static luv_question_t get_math_question() +{ return math_questions[rand() % MATH_QUESTIONS_LEN]; } -static void init_math_questions() { +static void init_math_questions() +{ static const char *ops = "+-*"; int i, p1, p2, result, max; char op; - luv_question_t* qs; + luv_question_t *qs; - for (i = 0; i < MATH_QUESTIONS_LEN; i++) { + for (i = 0; i < MATH_QUESTIONS_LEN; i++) + { op = ops[rand() % 3]; max = op == '*' ? 10 : 100; p1 = rand() % max; p2 = rand() % max; - switch(op) { - case '+' : { - result = p1 + p2; - break; - } - case '-' : { - result = p1 - p2; - break; - } - default : result = p1 * p2; + switch (op) + { + case '+': + { + result = p1 + p2; + break; + } + case '-': + { + result = p1 - p2; + break; + } + default: + result = p1 * p2; } qs = &math_questions[i]; @@ -61,11 +70,13 @@ static void init_math_questions() { } } -static void init_conversion_questions() { +static void init_conversion_questions() +{ int i; - luv_question_t* qs; + luv_question_t *qs; - for (i = 0; i < CONVERSION_QUESTIONS_LEN; i += 2) { + for (i = 0; i < CONVERSION_QUESTIONS_LEN; i += 2) + { qs = &conversion_questions[i]; snprintf(qs->question, QUESTION_LEN, "%d converted to HEXADECIMAL", i); @@ -77,21 +88,27 @@ static void init_conversion_questions() { } } -void luv_questions_init() { +void luv_questions_init() +{ init_math_questions(); init_conversion_questions(); } -luv_question_t luv_questions_get() { +luv_question_t luv_questions_get() +{ int r = rand() % 5; - switch (r) { - case 0 : return get_canned_question(); - - /* the conversion questions are kinda hard, so we favor math questions ;) */ - case 1 : - case 2 : - case 3 : return get_math_question(); - - default : return get_conversion_question(); + switch (r) + { + case 0: + return get_canned_question(); + + /* the conversion questions are kinda hard, so we favor math questions ;) */ + case 1: + case 2: + case 3: + return get_math_question(); + + default: + return get_conversion_question(); } } diff --git a/src/interactive_horse_race/tcp_server.c b/src/interactive_horse_race/tcp_server.c index 03c3ac5..50e3ff4 100644 --- a/src/interactive_horse_race/tcp_server.c +++ b/src/interactive_horse_race/tcp_server.c @@ -1,45 +1,51 @@ #include "interactive_horse_race.h" /* forward declarations */ -static void close_cb(uv_handle_t* client); -static void client_shutdown_cb(uv_shutdown_t*, int); -static void shutdown_cb(uv_shutdown_t*, int); +static void close_cb(uv_handle_t *client); +static void client_shutdown_cb(uv_shutdown_t *, int); +static void shutdown_cb(uv_shutdown_t *, int); -static void alloc_cb(uv_handle_t*, size_t, uv_buf_t*); -static void read_cb(uv_stream_t*, ssize_t, const uv_buf_t*); -static void onclient_msg_processed(luv_client_msg_t*, char*); +static void alloc_cb(uv_handle_t *, size_t, uv_buf_t *); +static void read_cb(uv_stream_t *, ssize_t, const uv_buf_t *); +static void onclient_msg_processed(luv_client_msg_t *, char *); -static void close_cb(uv_handle_t* client) { +static void close_cb(uv_handle_t *client) +{ free(client->data); // free the player variable free(client); log_info("Closed connection"); } -static void shutdown_cb(uv_shutdown_t* req, int status) { - uv_close((uv_handle_t*) req->handle, close_cb); +static void shutdown_cb(uv_shutdown_t *req, int status) +{ + uv_close((uv_handle_t *)req->handle, close_cb); free(req); } -static void client_shutdown_cb(uv_shutdown_t* req, int status) { - uv_close((uv_handle_t*) req->handle, close_cb); +static void client_shutdown_cb(uv_shutdown_t *req, int status) +{ + uv_close((uv_handle_t *)req->handle, close_cb); /* todo: clean client (req->data) and remove it from it's server */ free(req); } -static void write_cb(uv_write_t* req, int status) { +static void write_cb(uv_write_t *req, int status) +{ CHECK(status, "write_cb"); free(req->bufs); free(req); } -static void disconnect(luv_client_t* client) { +static void disconnect(luv_client_t *client) +{ int r; - luv_server_t* server = client->server; + luv_server_t *server = client->server; int last_slot = server->num_clients - 1; /* unless the last client quit we move the last client into its slot * in order to keep the clients array contiguous */ - if (client->slot < last_slot) { + if (client->slot < last_slot) + { server->clients[client->slot] = server->clients[last_slot]; server->clients[client->slot]->slot = client->slot; } @@ -47,33 +53,36 @@ static void disconnect(luv_client_t* client) { server->num_clients--; server->onclient_disconnected(client, server->num_clients); - uv_shutdown_t* shutdown_req = malloc(sizeof(uv_shutdown_t)); + uv_shutdown_t *shutdown_req = malloc(sizeof(uv_shutdown_t)); shutdown_req->data = client; - r = uv_shutdown(shutdown_req, (uv_stream_t*) client, client_shutdown_cb); + r = uv_shutdown(shutdown_req, (uv_stream_t *)client, client_shutdown_cb); CHECK(r, "uv_shutdown"); } -static void onconnection(uv_stream_t *tcp, int status) { +static void onconnection(uv_stream_t *tcp, int status) +{ CHECK(status, "onconnection"); - luv_server_t* server = (luv_server_t*)tcp; + luv_server_t *server = (luv_server_t *)tcp; int r; /* Accept client connection */ log_info("Accepting Connection"); - if (server->num_clients == MAX_CLIENTS) { + if (server->num_clients == MAX_CLIENTS) + { log_info("exceeded allowed number of clients"); /* todo: Ideally we'd allow the client to connect, tell it and disconnect */ return; } luv_client_t *client = malloc(sizeof(luv_client_t)); - r = uv_tcp_init(tcp->loop, (uv_tcp_t*)client); + r = uv_tcp_init(tcp->loop, (uv_tcp_t *)client); CHECK(r, "uv_tcp_init"); - r = uv_accept(tcp, (uv_stream_t*) client); - if (r) { + r = uv_accept(tcp, (uv_stream_t *)client); + if (r) + { log_error("trying to accept connection %d", r); disconnect(client); return; @@ -81,121 +90,127 @@ static void onconnection(uv_stream_t *tcp, int status) { server->clients[server->num_clients] = client; client->server = server; - client->slot = server->num_clients; - client->id = server->ids++; + client->slot = server->num_clients; + client->id = server->ids++; server->num_clients++; server->onclient_connected(client, server->num_clients); /* Start reading data from client */ - r = uv_read_start((uv_stream_t*) client, alloc_cb, read_cb); + r = uv_read_start((uv_stream_t *)client, alloc_cb, read_cb); CHECK(r, "uv_read_start"); } -static void alloc_cb(uv_handle_t *handle, size_t size, uv_buf_t *buf) { +static void alloc_cb(uv_handle_t *handle, size_t size, uv_buf_t *buf) +{ buf->base = malloc(size); buf->len = size; - if (buf->base == NULL) log_error("alloc_cb buffer didn't properly initialize"); + if (buf->base == NULL) + log_error("alloc_cb buffer didn't properly initialize"); } -static void read_cb(uv_stream_t* stream, ssize_t nread, const uv_buf_t* buf) { - luv_client_t *client = (luv_client_t*) stream; - luv_server_t* server = client->server; +static void read_cb(uv_stream_t *stream, ssize_t nread, const uv_buf_t *buf) +{ + luv_client_t *client = (luv_client_t *)stream; + luv_server_t *server = client->server; /* Errors or EOF */ - if (nread < 0) { - if (nread != UV_EOF) CHECK(nread, "read_cb"); + if (nread < 0) + { + if (nread != UV_EOF) + CHECK(nread, "read_cb"); free(buf->base); disconnect(client); return; } - if (nread == 0) { + if (nread == 0) + { free(buf->base); return; } luv_client_msg_t *msg = malloc(sizeof(luv_client_msg_t)); - msg->buf = buf->base; - msg->len = nread; + msg->buf = buf->base; + msg->len = nread; msg->client = client; server->onclient_msg(msg, onclient_msg_processed); } -static void onclient_msg_processed(luv_client_msg_t* msg, char* response) { +static void onclient_msg_processed(luv_client_msg_t *msg, char *response) +{ int r; - uv_write_t* write_req = malloc(sizeof(uv_write_t)); + uv_write_t *write_req = malloc(sizeof(uv_write_t)); int len = strlen(response); uv_buf_t buf = uv_buf_init(response, len); - r = uv_write(write_req, (uv_stream_t*) msg->client, &buf, 1, write_cb); + r = uv_write(write_req, (uv_stream_t *)msg->client, &buf, 1, write_cb); free(msg->buf); } -void luv_server_send(luv_server_t* self, luv_client_t* client, char* msg, int len) +void luv_server_send(luv_server_t *self, luv_client_t *client, char *msg, int len) { int r; - uv_write_t* write_req; + uv_write_t *write_req; - if (client == NULL) { + if (client == NULL) + { log_warn("Client %d was not properly initialized, cannot send message to it.", client->id); return; } uv_buf_t buf = uv_buf_init(msg, len); write_req = malloc(sizeof(uv_write_t)); - r = uv_write(write_req, (uv_stream_t*) client, &buf, 1, write_cb); + r = uv_write(write_req, (uv_stream_t *)client, &buf, 1, write_cb); CHECK(r, "uv_write"); } -void luv_server_destroy(luv_server_t* self) { +void luv_server_destroy(luv_server_t *self) +{ int r, i; uv_shutdown_t *shutdown_req; - for (i = 0; i < self->num_clients; i++) { + for (i = 0; i < self->num_clients; i++) + { shutdown_req = malloc(sizeof(uv_shutdown_t)); shutdown_req->data = self->clients[i]; - r = uv_shutdown(shutdown_req, (uv_stream_t*) self->clients[i], shutdown_cb); + r = uv_shutdown(shutdown_req, (uv_stream_t *)self->clients[i], shutdown_cb); CHECK(r, "uv_shutdown"); } - uv_close((uv_handle_t*) self, NULL); + uv_close((uv_handle_t *)self, NULL); } -void luv_server_start(luv_server_t* self, uv_loop_t *loop) { - int r = uv_listen((uv_stream_t*) self, SOMAXCONN, onconnection); +void luv_server_start(luv_server_t *self, uv_loop_t *loop) +{ + int r = uv_listen((uv_stream_t *)self, SOMAXCONN, onconnection); CHECK(r, "uv_listen"); log_info("Listening on %s:%d", self->host, self->port); } void luv_server_init( - luv_server_t* self - , uv_loop_t *loop - , const char* host - , int port - , luv_onclient_connected onclient_connected - , luv_onclient_disconnected onclient_disconnected - , luv_onclient_msg onclient_msg) { + luv_server_t *self, uv_loop_t *loop, const char *host, int port, luv_onclient_connected onclient_connected, luv_onclient_disconnected onclient_disconnected, luv_onclient_msg onclient_msg) +{ int r; - self->host = host; - self->port = port; - self->num_clients = 0; - self->onclient_connected = onclient_connected; + self->host = host; + self->port = port; + self->num_clients = 0; + self->onclient_connected = onclient_connected; self->onclient_disconnected = onclient_disconnected; - self->onclient_msg = onclient_msg; + self->onclient_msg = onclient_msg; /* Initialize TCP server */ r = uv_tcp_init(loop, &self->tcp); CHECK(r, "uv_tcp_init"); - /* Bind to localhost:7000 */ + /* Bind to localhost:7001 */ struct sockaddr_in addr; r = uv_ip4_addr(host, port, &addr); CHECK(r, "uv_ip4_addr"); - r = uv_tcp_bind(&self->tcp, (struct sockaddr*) &addr, AF_INET); + r = uv_tcp_bind(&self->tcp, (struct sockaddr *)&addr, AF_INET); CHECK(r, "uv_tcp_bind"); } diff --git a/src/interactive_horse_race/track.c b/src/interactive_horse_race/track.c index b3c185b..fa6e799 100644 --- a/src/interactive_horse_race/track.c +++ b/src/interactive_horse_race/track.c @@ -5,34 +5,34 @@ #include #include -#define HORSE_WIDTH 29 +#define HORSE_WIDTH 29 #define HORSE_HEIGHT 11 -#define TRACK_WIDTH 110 - -const static char* horse_pic[HORSE_HEIGHT] = { - " ,***, ", - " ,***` *==--", - " ,**`( '| ", - " ,**@ /v_/ ", - " ,*.-'''--*** '@@__ ", - " **/ |__`v ", - " .*'v | v / // ", - " ,*' > .'----v | [/ ", - " < <<` || ", - " `vvv || ", - " )vv )v " -}; +#define TRACK_WIDTH 110 + +const static char *horse_pic[HORSE_HEIGHT] = { + " ,***, ", + " ,***` *==--", + " ,**`( '| ", + " ,**@ /v_/ ", + " ,*.-'''--*** '@@__ ", + " **/ |__`v ", + " .*'v | v / // ", + " ,*' > .'----v | [/ ", + " < <<` || ", + " `vvv || ", + " )vv )v "}; static luv_horse_t horses[] = { - { .name = "bnoordhuis " , .color = 1, .track = 0, .position = 0 }, - { .name = "piscisaureus" , .color = 2, .track = 1, .position = 0 }, - { .name = "ry " , .color = 3, .track = 2, .position = 0 }, - { .name = "saghul " , .color = 4, .track = 3, .position = 0 }, - { .name = "indutny " , .color = 5, .track = 4, .position = 0 } -}; - -static void load_color_palette() { - if (!has_colors()) return; + {.name = "bnoordhuis ", .color = 1, .track = 0, .position = 0}, + {.name = "piscisaureus", .color = 2, .track = 1, .position = 0}, + {.name = "ry ", .color = 3, .track = 2, .position = 0}, + {.name = "saghul ", .color = 4, .track = 3, .position = 0}, + {.name = "indutny ", .color = 5, .track = 4, .position = 0}}; + +static void load_color_palette() +{ + if (!has_colors()) + return; use_default_colors(); start_color(); @@ -43,7 +43,8 @@ static void load_color_palette() { init_pair(5, COLOR_YELLOW, -1); } -static void init_screen() { +static void init_screen() +{ initscr(); curs_set(FALSE); raw(); @@ -52,45 +53,56 @@ static void init_screen() { load_color_palette(); } -static void horse_draw(luv_horse_t *self) { - if (!DRAW) { +static void horse_draw(luv_horse_t *self) +{ + if (!DRAW) + { log_info("Horse %s\ttrack: %d\t position: %d", self->name, self->track, self->position); return; } int i; attrset(COLOR_PAIR(self->color)); - for (i = 0; i < HORSE_HEIGHT; i++) { + for (i = 0; i < HORSE_HEIGHT; i++) + { mvprintw((self->track * HORSE_HEIGHT) + i, self->position, horse_pic[i]); } refresh(); } -static void add_player(uv_loop_t* loop, luv_player_t* player) { +static void add_player(uv_loop_t *loop, luv_player_t *player) +{ luv_horse_t *horse = horses + player->track; horse->position = 0; player->horse = horse; player->speed = 0; log_info("Queued horse %s on track: %d", horse->name, horse->track); - if (DRAW) horse_draw(player->horse); + if (DRAW) + horse_draw(player->horse); } -static void update_player(int rand_num, luv_player_t* player) { +static void update_player(int rand_num, luv_player_t *player) +{ luv_horse_t *horse = player->horse; - if (rand_num > player->speed) return; + if (rand_num > player->speed) + return; horse->position++; log_info("Horse %s progresses to position %d.", horse->name, horse->position); - if (DRAW) horse_draw(player->horse); + if (DRAW) + horse_draw(player->horse); } -void track_handler(uv_idle_t* handle) { +void track_handler(uv_idle_t *handle) +{ int i; luv_game_t *game = handle->data; - if (!game->in_progress) return; - if (--(game->delay) > 0) return; + if (!game->in_progress) + return; + if (--(game->delay) > 0) + return; game->delay = DELAY; @@ -100,12 +112,13 @@ void track_handler(uv_idle_t* handle) { int rand_num = (rand() % MAX_SPEED) + 1; for (i = 0; i < server->num_clients; i++) update_player(rand_num, clients[i]->data); - } -void track_init(uv_loop_t* loop, luv_client_t** clients, int num_players) { +void track_init(uv_loop_t *loop, luv_client_t **clients, int num_players) +{ int i; - if (DRAW) init_screen(); + if (DRAW) + init_screen(); for (i = 0; i < num_players; i++) add_player(loop, clients[i]->data); From c7dead05e5846f1ef7ac425649a790c30112e648 Mon Sep 17 00:00:00 2001 From: "Naryshkin, Ilia" Date: Mon, 22 Jul 2024 19:15:17 +0300 Subject: [PATCH 10/25] 00_libuv_sandbox init --- README.md | 12 ++++++------ learnuv.gyp | 1 + src/00_libuv_sandbox.c | 33 +++++++++++++++++++++++++++++++++ src/01_system_info.c | 2 +- 4 files changed, 41 insertions(+), 7 deletions(-) create mode 100644 src/00_libuv_sandbox.c diff --git a/README.md b/README.md index fd10f24..3df4596 100644 --- a/README.md +++ b/README.md @@ -9,23 +9,23 @@ Learn uv for fun and profit, a self-guided workshop to [the library](https://git Read the [learnuv gitbook](http://thlorenz.github.io/learnuv/book) which explains some libuv and related C language concepts that will help you complete the exercises. -## Setup +## Setup for `macOS 14.5 23F79` ```sh -pyenv install 2.7 && -pyenv local 2.7.18 +npm install ``` ```sh -eval "$(pyenv init -)" # for some reason it's not working from ~/.zshrc +pyenv install 2.7 && +pyenv local 2.7.18 ``` ```sh -npm install +pip install six # https://github.com/thlorenz/learnuv/issues/45 ``` ```sh -pip install six # https://github.com/thlorenz/learnuv/issues/45 +eval "$(pyenv init -)" # for some reason it's not working from ~/.zshrc ``` ```sh diff --git a/learnuv.gyp b/learnuv.gyp index 5eb7a83..a34d57f 100644 --- a/learnuv.gyp +++ b/learnuv.gyp @@ -27,6 +27,7 @@ ] }, 'targets': [ + { 'target_name': '00_libuv_sandbox' , 'sources': [ './src/00_libuv_sandbox.c' ] } , { 'target_name': '01_system_info' , 'sources': [ './src/01_system_info.c' ] } , { 'target_name': '02_idle' , 'sources': [ './src/02_idle.c' ] } , { 'target_name': '03_fs_readsync' , 'sources': [ './src/03_fs_readsync.c' ] } , diff --git a/src/00_libuv_sandbox.c b/src/00_libuv_sandbox.c new file mode 100644 index 0000000..9fe3bff --- /dev/null +++ b/src/00_libuv_sandbox.c @@ -0,0 +1,33 @@ +#include "learnuv.h" + +static const char *filename = __MAGIC_FILE__; + +void async_hello_world_cb(uv_work_t *work_req) +{ + log_info("Hello world"); + return; +} + +void finish_cb(uv_work_t *work_req, int status) +{ + CHECK(status, "finish_cb"); + return; +} + +int main() +{ + setenv("UV_THREADPOOL_SIZE", "0", 1); + + int r; + uv_loop_t *loop = uv_default_loop(); + + // https://docs.libuv.org/en/latest/threadpool.html + uv_work_t *work_req = malloc(sizeof(uv_work_t)); + + r = uv_queue_work(loop, work_req, async_hello_world_cb, finish_cb); + CHECK(r, "uv_async_init"); + + uv_run(loop, UV_RUN_DEFAULT); + + return 0; +} diff --git a/src/01_system_info.c b/src/01_system_info.c index 637dcbd..7a16b41 100644 --- a/src/01_system_info.c +++ b/src/01_system_info.c @@ -2,7 +2,7 @@ int main() { - log_info("01_system_info"); + log_info("01_system_info"); int err; double uptime; From 76ecd6a19383e375b659e0f2a1516cb8122f728a Mon Sep 17 00:00:00 2001 From: "Naryshkin, Ilia" Date: Wed, 24 Jul 2024 09:17:01 +0300 Subject: [PATCH 11/25] epam_workshop init --- README.md | 12 ++++++-- learnuv.gyp | 3 +- src/{00_libuv_sandbox.c => epam_workshop.c} | 3 +- src/libuv_sandbox.c | 34 +++++++++++++++++++++ 4 files changed, 48 insertions(+), 4 deletions(-) rename src/{00_libuv_sandbox.c => epam_workshop.c} (86%) create mode 100644 src/libuv_sandbox.c diff --git a/README.md b/README.md index 3df4596..8e483e3 100644 --- a/README.md +++ b/README.md @@ -6,8 +6,16 @@ Learn uv for fun and profit, a self-guided workshop to [the library](https://git ## Before You Start -Read the [learnuv gitbook](http://thlorenz.github.io/learnuv/book) which explains some libuv and related C language -concepts that will help you complete the exercises. +1. C Introduction - https://www.w3schools.com/c/c_intro.php +2. Pointers - https://www.w3schools.com/c/c_pointers.php +3. Address-Of / Dereference +4. Struct - https://www.w3schools.com/c/c_structs.php +5. Automatic Allocation vs Dynamic Allocation (malloc) +6. NULL +7. Typecast - https://www.tutorialspoint.com/cprogramming/c_type_casting.htm +8. LibUV guidebook (5 mins reading) - https://thlorenz.com/learnuv/book/ + +And of course a magnificent [LibUV Guidebook](https://docs.libuv.org/en/v1.x/guide/introduction.html) ## Setup for `macOS 14.5 23F79` diff --git a/learnuv.gyp b/learnuv.gyp index a34d57f..b12b352 100644 --- a/learnuv.gyp +++ b/learnuv.gyp @@ -27,7 +27,8 @@ ] }, 'targets': [ - { 'target_name': '00_libuv_sandbox' , 'sources': [ './src/00_libuv_sandbox.c' ] } , + { 'target_name': 'epam_workshop' , 'sources': [ './src/epam_workshop.c' ] } , + { 'target_name': 'libuv_sandbox' , 'sources': [ './src/libuv_sandbox.c' ] } , { 'target_name': '01_system_info' , 'sources': [ './src/01_system_info.c' ] } , { 'target_name': '02_idle' , 'sources': [ './src/02_idle.c' ] } , { 'target_name': '03_fs_readsync' , 'sources': [ './src/03_fs_readsync.c' ] } , diff --git a/src/00_libuv_sandbox.c b/src/epam_workshop.c similarity index 86% rename from src/00_libuv_sandbox.c rename to src/epam_workshop.c index 9fe3bff..62f3900 100644 --- a/src/00_libuv_sandbox.c +++ b/src/epam_workshop.c @@ -19,12 +19,13 @@ int main() setenv("UV_THREADPOOL_SIZE", "0", 1); int r; + // event-driven uv_loop_t *loop = uv_default_loop(); // https://docs.libuv.org/en/latest/threadpool.html uv_work_t *work_req = malloc(sizeof(uv_work_t)); - r = uv_queue_work(loop, work_req, async_hello_world_cb, finish_cb); + r = uv_queue_work(loop, work_req, async_hello_world_cb, NULL); CHECK(r, "uv_async_init"); uv_run(loop, UV_RUN_DEFAULT); diff --git a/src/libuv_sandbox.c b/src/libuv_sandbox.c new file mode 100644 index 0000000..62f3900 --- /dev/null +++ b/src/libuv_sandbox.c @@ -0,0 +1,34 @@ +#include "learnuv.h" + +static const char *filename = __MAGIC_FILE__; + +void async_hello_world_cb(uv_work_t *work_req) +{ + log_info("Hello world"); + return; +} + +void finish_cb(uv_work_t *work_req, int status) +{ + CHECK(status, "finish_cb"); + return; +} + +int main() +{ + setenv("UV_THREADPOOL_SIZE", "0", 1); + + int r; + // event-driven + uv_loop_t *loop = uv_default_loop(); + + // https://docs.libuv.org/en/latest/threadpool.html + uv_work_t *work_req = malloc(sizeof(uv_work_t)); + + r = uv_queue_work(loop, work_req, async_hello_world_cb, NULL); + CHECK(r, "uv_async_init"); + + uv_run(loop, UV_RUN_DEFAULT); + + return 0; +} From 839aa4defa617389b2c25039df8cdd02741aa55b Mon Sep 17 00:00:00 2001 From: "Naryshkin, Ilia" Date: Wed, 24 Jul 2024 12:24:38 +0300 Subject: [PATCH 12/25] Settled TODOs --- src/libuv_sandbox.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/libuv_sandbox.c b/src/libuv_sandbox.c index 62f3900..4b61fe0 100644 --- a/src/libuv_sandbox.c +++ b/src/libuv_sandbox.c @@ -22,13 +22,27 @@ int main() // event-driven uv_loop_t *loop = uv_default_loop(); + // TODO: Call a timer, before handlers + // https://docs.libuv.org/en/latest/threadpool.html uv_work_t *work_req = malloc(sizeof(uv_work_t)); + // TODO: Differentiate IDLE (is it uv_idle_t?) and PREPARE handlers | + // TODO: Find out that I/O (try file reading, or networking (it's even better because we could initiate event via terminal)) is called before CLOSE handler + // TODO: Understand once CLOSE handler is called r = uv_queue_work(loop, work_req, async_hello_world_cb, NULL); + + // TODO: Identify CHECK handlers CHECK(r, "uv_async_init"); + // TODO: Find where loop time is updated uv_run(loop, UV_RUN_DEFAULT); + // TODO: But. Learn how multiple threads are actually working together inside one event loop + + // TODO: Just read about processes inside libuv, just to be aware + + // TODO: Try stopping event loop (and see how events are still processed before loop is stopped) + return 0; } From d5145c2534d47038850216519b154b3939661689 Mon Sep 17 00:00:00 2001 From: "Naryshkin, Ilia" Date: Wed, 24 Jul 2024 21:50:31 +0300 Subject: [PATCH 13/25] libuv_sandbox - IDLE --- README.md | 4 +--- assets/screenshot.png | Bin 138280 -> 0 bytes src/libuv_sandbox.c | 25 ++++++++++++++++++++----- 3 files changed, 21 insertions(+), 8 deletions(-) delete mode 100644 assets/screenshot.png diff --git a/README.md b/README.md index 8e483e3..9826cb4 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,6 @@ # learnuv -Learn uv for fun and profit, a self-guided workshop to [the library](https://github.com/libuv/libuv) that powers Node.js. - -![screenshot](assets/screenshot.png) +This is a fork, where I did my playtime. Make sure to check the original repo [thlorenz/learnuv](https://github.com/thlorenz/learnuv) ## Before You Start diff --git a/assets/screenshot.png b/assets/screenshot.png deleted file mode 100644 index 5db2bffe7ea38c422e44e7da2ffa4e6147fe3c13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 138280 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

&Vk^*JySZDBLO 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 + log_info("IDLE handler: %ld", handle->data); + + if (handle->data >= 100) + { + uv_idle_stop(handle); + } +} + int main() { setenv("UV_THREADPOOL_SIZE", "0", 1); int r; - // event-driven - uv_loop_t *loop = uv_default_loop(); - // TODO: Call a timer, before handlers // https://docs.libuv.org/en/latest/threadpool.html uv_work_t *work_req = malloc(sizeof(uv_work_t)); + uv_idle_t idler; + idler.data = 0; + uv_idle_init(uv_default_loop(), &idler); + uv_idle_start(&idler, wait_for_a_while); + // TODO: Differentiate IDLE (is it uv_idle_t?) and PREPARE handlers | // TODO: Find out that I/O (try file reading, or networking (it's even better because we could initiate event via terminal)) is called before CLOSE handler // TODO: Understand once CLOSE handler is called - r = uv_queue_work(loop, work_req, async_hello_world_cb, NULL); + r = uv_queue_work(uv_default_loop(), work_req, async_hello_world_cb, NULL); // TODO: Identify CHECK handlers CHECK(r, "uv_async_init"); // TODO: Find where loop time is updated - uv_run(loop, UV_RUN_DEFAULT); + uv_run(uv_default_loop(), UV_RUN_DEFAULT); // TODO: But. Learn how multiple threads are actually working together inside one event loop From 729f84c9067e1a58f7216df74e23dddea68b348b Mon Sep 17 00:00:00 2001 From: "Naryshkin, Ilia" Date: Thu, 25 Jul 2024 07:53:43 +0300 Subject: [PATCH 14/25] libuv_sandbox - Filesystem --- src/libuv_sandbox.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/libuv_sandbox.c b/src/libuv_sandbox.c index 1b8f6bc..f6bbb38 100644 --- a/src/libuv_sandbox.c +++ b/src/libuv_sandbox.c @@ -44,6 +44,16 @@ int main() // TODO: Differentiate IDLE (is it uv_idle_t?) and PREPARE handlers | // TODO: Find out that I/O (try file reading, or networking (it's even better because we could initiate event via terminal)) is called before CLOSE handler + + // uv_fs_t *open_req = malloc(sizeof(uv_fs_t)); + // r = uv_fs_open(uv_default_loop(), open_req, filename, O_RDONLY, S_IRUSR, NULL); + // CHECK(r, "uv_fs_open"); + // char buf[20 + 1]; + // memset(buf, 0, sizeof(buf)); + // uv_buf_t iov = uv_buf_init(buf, 20); + // uv_fs_t read_req; + // r = uv_fs_read(uv_default_loop(), &read_req, open_req->result, &iov, 1, 0, NULL); + // TODO: Understand once CLOSE handler is called r = uv_queue_work(uv_default_loop(), work_req, async_hello_world_cb, NULL); From e5154a84c0ada77d306939bd016077dd6c7e04d6 Mon Sep 17 00:00:00 2001 From: "Naryshkin, Ilia" Date: Thu, 25 Jul 2024 12:21:01 +0300 Subject: [PATCH 15/25] libuv_sandbox - Network --- src/libuv_sandbox.c | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/src/libuv_sandbox.c b/src/libuv_sandbox.c index f6bbb38..9d18df7 100644 --- a/src/libuv_sandbox.c +++ b/src/libuv_sandbox.c @@ -27,6 +27,26 @@ void wait_for_a_while(uv_idle_t *handle) } } +static void on_connection(uv_stream_t *server, int status) +{ + CHECK(status, "on_connection"); + + int r = 0; + + log_info("Accepting Connection"); + + // http://docs.libuv.org/en/latest/tcp.html#c.uv_tcp_init + uv_tcp_t *client = malloc(sizeof(uv_tcp_t)); + r = uv_tcp_init(server->loop, client); + CHECK(r, "uv_tcp_init"); + + // http://docs.libuv.org/en/latest/stream.html#c.uv_accept + r = uv_accept(server, (uv_stream_t *)client); + // uv_shutdown_t *shutdown_req = malloc(sizeof(uv_shutdown_t)); + // r = uv_shutdown(shutdown_req, (uv_stream_t *)client, NULL); + // CHECK(r, "uv_shutdown"); +} + int main() { setenv("UV_THREADPOOL_SIZE", "0", 1); @@ -54,6 +74,29 @@ int main() // uv_fs_t read_req; // r = uv_fs_read(uv_default_loop(), &read_req, open_req->result, &iov, 1, 0, NULL); + uv_tcp_t server; + uv_tcp_init(uv_default_loop(), &server); + + /* + * Use `nc localhost 7001` to test your server (finish via Ctrl-D) and/or stop the server by sending QUIT. + nc localhost 7001 + echo 'Hello, Netcat!' | nc localhost 7001 + + * You can also send entire files, i.e. `cat package.json | netcat localhost 7001`. + cat package.json | netcat localhost 7001 + */ + char *addr = "0.0.0.0"; + int port = 7001; + uv_ip4_addr("0.0.0.0", port, &addr); + + uv_tcp_bind(&server, (const struct sockaddr *)&addr, 0); + r = uv_listen((uv_stream_t *)&server, SOMAXCONN, on_connection); + if (r) + { + fprintf(stderr, "Listen error %s\n", uv_strerror(r)); + return 1; + } + // TODO: Understand once CLOSE handler is called r = uv_queue_work(uv_default_loop(), work_req, async_hello_world_cb, NULL); From 5d9024c7ccec5cedee4f6f0861b3eca4a77235d9 Mon Sep 17 00:00:00 2001 From: "Naryshkin, Ilia" Date: Sun, 28 Jul 2024 13:56:25 +0300 Subject: [PATCH 16/25] demultiplexer --- src/event_loop_sandbox.js | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/event_loop_sandbox.js diff --git a/src/event_loop_sandbox.js b/src/event_loop_sandbox.js new file mode 100644 index 0000000..ce6160e --- /dev/null +++ b/src/event_loop_sandbox.js @@ -0,0 +1,33 @@ +/** + * @fileoverview Event loop sandbox, try to understand how libuv works from POINT OF VIEW of JavaScript. + * Inspired by this article circle + * @link Event Loop and the Big Picture (This article) - https://blog.insiderattack.net/event-loop-and-the-big-picture-nodejs-event-loop-part-1-1cb67a182810 + * @link Timers, Immediates and Next Ticks - https://blog.insiderattack.net/timers-immediates-and-process-nexttick-nodejs-event-loop-part-2-2c53fd511bb3 + * @link Promises, Next-Ticks, and Immediates - https://blog.insiderattack.net/promises-next-ticks-and-immediates-nodejs-event-loop-part-3-9226cbe7a6aa + * @link Handling I/O - https://blog.insiderattack.net/handling-io-nodejs-event-loop-part-4-418062f917d1 + * @link Event Loop Best Practices - https://blog.insiderattack.net/event-loop-best-practices-nodejs-event-loop-part-5-e29b2b50bfe2 + * @link New changes to timers and microtasks in Node v11 - https://blog.insiderattack.net/new-changes-to-timers-and-microtasks-from-node-v11-0-0-and-above-68d112743eb3 + * @link JavaScript Event Loop vs Node JS Event Loop - https://blog.insiderattack.net/javascript-event-loop-vs-node-js-event-loop-aea2b1b85f5c + +node src/event_loop_sandbox.js + + */ + +console.log("Start"); + +/** + * demultiplexer + * - receives I/O requests and delegates these requests to the appropriate hardware. + * - add the registered callback handler for the particular action (events) in a queue (Event Queue) to be processed + * - Reactor Pattern + * - epoll on Linux, kqueue on BSD systems (macOS), event ports in Solaris, IOCP (Input Output Completion Port) in Windows, etc + * - thread pool is used to handle the I/O operations, in case it cannot be directly addressed by hardware asynchronous I/O utils + */ + +/** + * Process vs Threads + * The primary difference between a process and a thread is that + * different processes cannot share the same memory space (code, variables, etc) + * whereas different threads in the same process share the same memory space. + * Threads are lightweight whereas Processes are heavyweight. + */ From c655d0b63de90af9338b4cc71d5ddb33ca0e8b53 Mon Sep 17 00:00:00 2001 From: "Naryshkin, Ilia" Date: Tue, 30 Jul 2024 10:22:14 +0300 Subject: [PATCH 17/25] libuv --- src/event_loop_sandbox/event-loop.png | Bin 0 -> 457230 bytes .../index.js} | 22 ++++++++++++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 src/event_loop_sandbox/event-loop.png rename src/{event_loop_sandbox.js => event_loop_sandbox/index.js} (65%) diff --git a/src/event_loop_sandbox/event-loop.png b/src/event_loop_sandbox/event-loop.png new file mode 100644 index 0000000000000000000000000000000000000000..12b3276e86f402591aca2aeac3e29460c8ae3df5 GIT binary patch literal 457230 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%0DNGJpP%7=*`#-j$K5{{w<}Sl&iF9o6m)k*XVVP*) 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

7Hl!>4{f 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 i`YFEtLPqR=lccXQrqCuxDVgo?Z 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≠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

_GHgmsPk}MuOLg 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 Y2Mkd-;qOqOApdDT&{i$KZ}Z~+0KU-N`2YX_ literal 0 HcmV?d00001 diff --git a/src/event_loop_sandbox.js b/src/event_loop_sandbox/index.js similarity index 65% rename from src/event_loop_sandbox.js rename to src/event_loop_sandbox/index.js index ce6160e..9694327 100644 --- a/src/event_loop_sandbox.js +++ b/src/event_loop_sandbox/index.js @@ -9,19 +9,20 @@ * @link New changes to timers and microtasks in Node v11 - https://blog.insiderattack.net/new-changes-to-timers-and-microtasks-from-node-v11-0-0-and-above-68d112743eb3 * @link JavaScript Event Loop vs Node JS Event Loop - https://blog.insiderattack.net/javascript-event-loop-vs-node-js-event-loop-aea2b1b85f5c -node src/event_loop_sandbox.js +node src/event_loop_sandbox */ console.log("Start"); /** - * demultiplexer + * demultiplexer (libuv) * - receives I/O requests and delegates these requests to the appropriate hardware. * - add the registered callback handler for the particular action (events) in a queue (Event Queue) to be processed * - Reactor Pattern * - epoll on Linux, kqueue on BSD systems (macOS), event ports in Solaris, IOCP (Input Output Completion Port) in Windows, etc * - thread pool is used to handle the I/O operations, in case it cannot be directly addressed by hardware asynchronous I/O utils + * - NodeJS has done its best to do most of the I/O using non-blocking and asynchronous hardware I/O, but for the I/O types which blocks or are complex to address, it uses the thread pool. */ /** @@ -31,3 +32,20 @@ console.log("Start"); * whereas different threads in the same process share the same memory space. * Threads are lightweight whereas Processes are heavyweight. */ + +/** + * Event Loop (libuv) + * - After processing one phase and before moving to the next phase, event loop will process two intermediate queues until no items are remaining in the intermediate queues. + * - Tracking the reference counter of total items to be processed - once it reaches zero, the event loop exits. + * 1. Expired timers and intervals queue (min-heap) + * 2. IO Events Queue + * 3. Immediate Queue + * 4. Close Handlers Queue + * 0. (before moving between queues) Next Ticks Queue, Other Microtasks Queue (resolved promise callbacks) + */ + +/** + * IO starvation + * - Extensively filling up the next tick queue using process.nextTick function will force the event loop to keep processing the next tick queue indefinitely without moving forward. + * TODO: Write a code snippet to demonstrate IO starvation + */ From 4aafcff72190db6997908e37b7326601d145220a Mon Sep 17 00:00:00 2001 From: "Naryshkin, Ilia" Date: Wed, 31 Jul 2024 19:51:25 +0300 Subject: [PATCH 18/25] timers, intervals, Immediate, next tick --- src/event_loop_sandbox/index.js | 73 +++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/src/event_loop_sandbox/index.js b/src/event_loop_sandbox/index.js index 9694327..40f8c7d 100644 --- a/src/event_loop_sandbox/index.js +++ b/src/event_loop_sandbox/index.js @@ -42,10 +42,83 @@ console.log("Start"); * 3. Immediate Queue * 4. Close Handlers Queue * 0. (before moving between queues) Next Ticks Queue, Other Microtasks Queue (resolved promise callbacks) + * - Next Ticks and Microtasks Queue will run between each individual setTimeout and setImmediate callbacks to match the browser behavior */ +/** + * Next tick queue is not natively provided by the libuv (four main phases), but implemented in Node. + */ +function nextTickQueue() { + setTimeout(() => console.log("timeout1")); + setTimeout(() => { + console.log("timeout2"); + Promise.resolve().then(() => console.log("promise resolve")); + }); + setTimeout(() => console.log("timeout3")); + setTimeout(() => console.log("timeout4")); +} +// nextTickQueue(); + /** * IO starvation * - Extensively filling up the next tick queue using process.nextTick function will force the event loop to keep processing the next tick queue indefinitely without moving forward. * TODO: Write a code snippet to demonstrate IO starvation */ +function ioStarvation() { + function addNextTickRecurs(count) { + let self = this; + if (self.id === undefined) { + self.id = 0; + } + + if (self.id === count) return; + + process.nextTick(() => { + console.log(`process.nextTick call ${++self.id}`); + addNextTickRecurs.call(self, count); + }); + } + + addNextTickRecurs(10); + // Node add a timer to the timers heap (in memory) + setTimeout(console.log.bind(console, "omg! setTimeout was called"), 10); + setImmediate(console.log.bind(console, "omg! setImmediate also was called")); +} +// ioStarvation(); + +/** + * Node check against time expiration. + * Time is taken on each loop run + * @link https://docs.libuv.org/en/v1.x/design.html#the-i-o-loop | concept of ‘now’ + */ +function TimerExecution() { + const start = process.hrtime(); + + setTimeout(() => { + const end = process.hrtime(start); + console.log( + `timeout callback executed after ${end[0]}s and ${ + end[1] / Math.pow(10, 9) + }ms` + ); + }, 1000); +} +// TimerExecution(); + +/** + * As you might guess, this program will always print setTimeout before setImmediate + * because the expired timer queue are processed before immediate. + * !BUT + * The minimum timeout to 1ms in order to align with Chrome’s timers cap + * @link https://chromium.googlesource.com/chromium/blink/+/master/Source/core/frame/DOMTimer.cpp#93 + * So sometimes, setImmediate will be executed before setTimeout. + */ +function TimeoutVsImmediate() { + setTimeout(function () { + console.log("setTimeout"); + }, 0); + setImmediate(function () { + console.log("setImmediate"); + }); +} +TimeoutVsImmediate(); From a4899a32fb92099447b5cf0d89a21044b237a104 Mon Sep 17 00:00:00 2001 From: "Naryshkin, Ilia" Date: Thu, 1 Aug 2024 15:49:56 +0300 Subject: [PATCH 19/25] PromiseVsImmediate --- src/event_loop_sandbox/index.js | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/src/event_loop_sandbox/index.js b/src/event_loop_sandbox/index.js index 40f8c7d..81e1544 100644 --- a/src/event_loop_sandbox/index.js +++ b/src/event_loop_sandbox/index.js @@ -41,7 +41,7 @@ console.log("Start"); * 2. IO Events Queue * 3. Immediate Queue * 4. Close Handlers Queue - * 0. (before moving between queues) Next Ticks Queue, Other Microtasks Queue (resolved promise callbacks) + * 0. (before moving between queues) Next Ticks Queue, Other Microtasks Queue (resolved/reject promise callbacks) * - Next Ticks and Microtasks Queue will run between each individual setTimeout and setImmediate callbacks to match the browser behavior */ @@ -121,4 +121,30 @@ function TimeoutVsImmediate() { console.log("setImmediate"); }); } -TimeoutVsImmediate(); +// TimeoutVsImmediate(); + +/** + * Next Ticks and Microtasks (resolved/reject promise) Queues (0) are processed before every phase of the event loop. + */ +function PromiseVsImmediate() { + new Promise(() => console.log("promise executor")); + Promise.resolve().then(() => console.log("promise1 resolved")); + Promise.resolve().then(() => console.log("promise2 resolved")); + Promise.resolve().then(() => { + console.log("promise3 resolved"); + process.nextTick(() => + console.log("next tick inside promise resolve handler") + ); + }); + Promise.resolve().then(() => console.log("promise4 resolved")); + Promise.resolve().then(() => console.log("promise5 resolved")); + /** + * Timeout (1) handled earlier than Immediate (3) + */ + setTimeout(() => console.log("setTimeout"), 0); + setImmediate(() => console.log("set immediate1")); + setImmediate(() => console.log("set immediate2")); +} +PromiseVsImmediate(); + +console.log("End"); From 14994cb0373171a6ec5e10bd61f9d3ab63289123 Mon Sep 17 00:00:00 2001 From: "Naryshkin, Ilia" Date: Fri, 2 Aug 2024 10:39:11 +0300 Subject: [PATCH 20/25] libevent --- src/event_loop_sandbox/index.js | 85 +++++++++++++++++++++++++++++++-- 1 file changed, 80 insertions(+), 5 deletions(-) diff --git a/src/event_loop_sandbox/index.js b/src/event_loop_sandbox/index.js index 81e1544..486fc2d 100644 --- a/src/event_loop_sandbox/index.js +++ b/src/event_loop_sandbox/index.js @@ -13,10 +13,10 @@ node src/event_loop_sandbox */ -console.log("Start"); +console.log("Start of Script"); /** - * demultiplexer (libuv) + * demultiplexer (libuv, libevent for Chrome) * - receives I/O requests and delegates these requests to the appropriate hardware. * - add the registered callback handler for the particular action (events) in a queue (Event Queue) to be processed * - Reactor Pattern @@ -34,7 +34,7 @@ console.log("Start"); */ /** - * Event Loop (libuv) + * Event Loop (libuv, libevent for Chrome) * - After processing one phase and before moving to the next phase, event loop will process two intermediate queues until no items are remaining in the intermediate queues. * - Tracking the reference counter of total items to be processed - once it reaches zero, the event loop exits. * 1. Expired timers and intervals queue (min-heap) @@ -145,6 +145,81 @@ function PromiseVsImmediate() { setImmediate(() => console.log("set immediate1")); setImmediate(() => console.log("set immediate2")); } -PromiseVsImmediate(); +// PromiseVsImmediate(); -console.log("End"); +/** + * It's the same example as PromiseVsImmediate + */ +function MicrotasksVsMacrotasks() { + queueMicrotask(() => console.log("queueMicrotask1 resolved")); + queueMicrotask(() => console.log("queueMicrotask2 resolved")); + setTimeout(() => { + console.log("set timeout3"); + queueMicrotask(() => console.log("inner queueMicrotask3 resolved")); + }, 0); + setTimeout(() => console.log("set timeout1"), 0); + setTimeout(() => console.log("set timeout2"), 0); + queueMicrotask(() => console.log("queueMicrotask4 resolved")); + queueMicrotask(() => { + console.log("queueMicrotask5 resolved"); + queueMicrotask(() => console.log("inner queueMicrotask6 resolved")); + }); + queueMicrotask(() => console.log("queueMicrotask7 resolved")); +} +// MicrotasksVsMacrotasks(); + +/** + * Even if you have set the timeout to 0, all NodeJS timers seem to have fired after at least1ms. + * Chrome seems to cap the minimum timeout to 1ms for the first 4 nested timers. But afterwards, the cap seems to be increased to 4ms. + * > “Timers can be nested; after five such nested timers, however, the interval is forced to be at least four milliseconds.” + * Both NodeJS and Chrome enforces a 1ms minimum timeout to all the timers + */ +function TimerRace() { + const startHrTime = () => { + if (typeof window !== "undefined") return performance.now(); + return process.hrtime(); + }; + + const getHrTimeDiff = (start) => { + if (typeof window !== "undefined") return performance.now() - start; + const [ts, tns] = process.hrtime(start); + return ts * 1e3 + tns / 1e6; + }; + + console.log("TimerRace starts"); + const start1 = startHrTime(); + const outerTimer = setTimeout(() => { + const start2 = startHrTime(); + console.log(`timer1: ${getHrTimeDiff(start1)}`); + setTimeout(() => { + const start3 = startHrTime(); + console.log(`timer2: ${getHrTimeDiff(start2)}`); + setTimeout(() => { + const start4 = startHrTime(); + console.log(`timer3: ${getHrTimeDiff(start3)}`); + setTimeout(() => { + const start5 = startHrTime(); + console.log(`timer4: ${getHrTimeDiff(start4)}`); + setTimeout(() => { + const start6 = startHrTime(); + console.log(`timer5: ${getHrTimeDiff(start5)}`); + setTimeout(() => { + const start7 = startHrTime(); + console.log(`timer6: ${getHrTimeDiff(start6)}`); + setTimeout(() => { + const start8 = startHrTime(); + console.log(`timer7: ${getHrTimeDiff(start7)}`); + setTimeout(() => { + console.log(`timer8: ${getHrTimeDiff(start8)}`); + }); + }); + }); + }); + }); + }); + }); + }); +} +TimerRace(); + +console.log("End of Script"); From af031422da8422173b53f300eae25d6806128c60 Mon Sep 17 00:00:00 2001 From: "Naryshkin, Ilia" Date: Mon, 5 Aug 2024 13:10:23 +0300 Subject: [PATCH 21/25] Libuv Event Loop Phases --- src/event_loop_sandbox/index.js | 126 +++++++++++++++++- src/event_loop_sandbox/libuv-event-loop.png | Bin 0 -> 113250 bytes .../{event-loop.png => node-event-loop.png} | Bin 3 files changed, 124 insertions(+), 2 deletions(-) create mode 100644 src/event_loop_sandbox/libuv-event-loop.png rename src/event_loop_sandbox/{event-loop.png => node-event-loop.png} (100%) diff --git a/src/event_loop_sandbox/index.js b/src/event_loop_sandbox/index.js index 486fc2d..fc2a44a 100644 --- a/src/event_loop_sandbox/index.js +++ b/src/event_loop_sandbox/index.js @@ -37,14 +37,136 @@ console.log("Start of Script"); * Event Loop (libuv, libevent for Chrome) * - After processing one phase and before moving to the next phase, event loop will process two intermediate queues until no items are remaining in the intermediate queues. * - Tracking the reference counter of total items to be processed - once it reaches zero, the event loop exits. - * 1. Expired timers and intervals queue (min-heap) + * 1. Expired timers and intervals queue (min-heap) (setTimeout, setInterval) * 2. IO Events Queue - * 3. Immediate Queue + * 3. Immediate Queue (setImmediate) * 4. Close Handlers Queue * 0. (before moving between queues) Next Ticks Queue, Other Microtasks Queue (resolved/reject promise callbacks) * - Next Ticks and Microtasks Queue will run between each individual setTimeout and setImmediate callbacks to match the browser behavior */ +/** + * Libuv Event Loop Phases + * 1. Timers — Expired timer and interval callbacks scheduled by `setTimeout` and `setInterval` will be invoked. + * 2. Pending I/O callbacks — Pending Callbacks of any completed/errored I/O operation to be executed here. + * 3. Idle, prepare — Used internally by NodeJS. + * 4. Prepare Handlers — Perform some prep-work before polling for I/O. + * 5. I/O Poll — Optionally wait for any I/O to complete. + * 6. Check handlers — Perform some post-mortem work after polling for I/O. Usually, callbacks scheduled by setImmediate will be invoked here. + * 7. Close handlers — Execute close handlers of any closed I/O operations (closed socket connection etc.) + +// Check whether there are any referenced handlers to be invoked, or any active operations pending +r = uv__loop_alive(loop); +if (!r) + uv__update_time(loop); + +while (r != 0 && loop->stop_flag == 0) { + // This will send a system call to get the current time and update the loop time (This is used to identify expired timers). + uv__update_time(loop); + + // Run all expired timers + uv__run_timers(loop); + + // Run all completed/errored I/O callbacks + ran_pending = uv__run_pending(loop); + + uv__run_idle(loop); + uv__run_prepare(loop); + + // timeout to determine how long it should block for I/O + timeout = 0; + if ((mode == UV_RUN_ONCE && !ran_pending) || mode == UV_RUN_DEFAULT) + timeout = uv_backend_timeout(loop); + + // Poll for I/O, epoll_wait on Linux, kqueue on BSD systems (macOS), event ports in Solaris, GetQueuedCompletionStatus in IOCP (Input Output Completion Port) in Windows, etc + uv__io_poll(loop, timeout); + + // Run all check handlers (setImmediate callbacks will run here) + uv__run_check(loop); + + // Run all close handlers + uv__run_closing_handles(loop); + + if (mode == UV_RUN_ONCE) { + uv__update_time(loop); + uv__run_timers(loop); + } + + r = uv__loop_alive(loop); + if (mode == UV_RUN_ONCE || mode == UV_RUN_NOWAIT) + break; +} + + +// Event loop will keep spinning as long as uv__loop_alive function returns true. +static int uv__loop_alive(const uv_loop_t* loop) { + return uv__has_active_handles(loop) || + uv__has_active_reqs(loop) || + loop->closing_handles != NULL; +} + +static int uv__run_pending(uv_loop_t* loop) { + QUEUE* q; + QUEUE pq; + uv__io_t* w; + + if (QUEUE_EMPTY(&loop->pending_queue)) + return 0; + + QUEUE_MOVE(&loop->pending_queue, &pq); + + while (!QUEUE_EMPTY(&pq)) { + q = QUEUE_HEAD(&pq); + QUEUE_REMOVE(q); + QUEUE_INIT(q); + w = QUEUE_DATA(q, uv__io_t, pending_queue); + w->cb(loop, w, POLLOUT); + } + + return 1; +} + +int uv_backend_timeout(const uv_loop_t* loop) { + if (loop->stop_flag != 0) + return 0; + + if (!uv__has_active_handles(loop) && !uv__has_active_reqs(loop)) + return 0; + + if (!QUEUE_EMPTY(&loop->idle_handles)) + return 0; + + if (!QUEUE_EMPTY(&loop->pending_queue)) + return 0; + + if (loop->closing_handles) + return 0; + + return uv__next_timeout(loop); +} + +// The event loop will not be blocked if there are any pending tasks to be executed. If there are no pending tasks to be executed, it will only be blocked until the next timer goes off, which re-activates the loop. +int uv__next_timeout(const uv_loop_t* loop) { + const struct heap_node* heap_node; + const uv_timer_t* handle; + uint64_t diff; + + heap_node = heap_min((const struct heap*) &loop->timer_heap); + if (heap_node == NULL) + return -1; // block indefinitely + + handle = container_of(heap_node, uv_timer_t, heap_node); + if (handle->timeout <= loop->time) + return 0; + + diff = handle->timeout - loop->time; + if (diff > INT_MAX) + diff = INT_MAX; + + return diff; +} + */ + /** * Next tick queue is not natively provided by the libuv (four main phases), but implemented in Node. */ diff --git a/src/event_loop_sandbox/libuv-event-loop.png b/src/event_loop_sandbox/libuv-event-loop.png new file mode 100644 index 0000000000000000000000000000000000000000..d64083c253f271a29c07e3baf5b4197d8fce3d34 GIT binary patch literal 113250 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


#n;_;l=;SpF>!!y-Na9Cj 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 Date: Tue, 6 Aug 2024 09:03:22 +0300 Subject: [PATCH 22/25] Threadpool --- src/event_loop_sandbox/index.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/event_loop_sandbox/index.js b/src/event_loop_sandbox/index.js index fc2a44a..b75de26 100644 --- a/src/event_loop_sandbox/index.js +++ b/src/event_loop_sandbox/index.js @@ -33,6 +33,12 @@ console.log("Start of Script"); * Threads are lightweight whereas Processes are heavyweight. */ +/** + * Threadpool + * - used to perform all File I/O operations, getaddrinfo and getnameinfo calls during DNS operations, randomBytes, randomFill and pbkdf2 are also run on the libuv thread pool + * - thread pool is limited (default size is 4, can be increased up to 128) + */ + /** * Event Loop (libuv, libevent for Chrome) * - After processing one phase and before moving to the next phase, event loop will process two intermediate queues until no items are remaining in the intermediate queues. @@ -54,6 +60,8 @@ console.log("Start of Script"); * 5. I/O Poll — Optionally wait for any I/O to complete. * 6. Check handlers — Perform some post-mortem work after polling for I/O. Usually, callbacks scheduled by setImmediate will be invoked here. * 7. Close handlers — Execute close handlers of any closed I/O operations (closed socket connection etc.) + * + * @link https://www.youtube.com/watch?v=sGTRmPiXD4Y // Check whether there are any referenced handlers to be invoked, or any active operations pending r = uv__loop_alive(loop); From 26c500e0896ecbdaa374d5f7e5b49d51d9929cbc Mon Sep 17 00:00:00 2001 From: "Naryshkin, Ilia" Date: Thu, 8 Aug 2024 15:24:42 +0300 Subject: [PATCH 23/25] Best Practices --- src/event_loop_sandbox/index.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/event_loop_sandbox/index.js b/src/event_loop_sandbox/index.js index b75de26..045b08c 100644 --- a/src/event_loop_sandbox/index.js +++ b/src/event_loop_sandbox/index.js @@ -353,3 +353,15 @@ function TimerRace() { TimerRace(); console.log("End of Script"); + +/** + * Best Practices + * - Avoid sync I/O inside repeatedly invoked code blocks + * - dns.lookup() vs dns.resolve*() + * > These functions are implemented quite differently than dns.lookup(). (dns.resolve does not overload the libuv threadpool) + * > They do not use getaddrinfo(3) and they always perform a DNS query on the network. This network communication is always done asynchronously, and does not use libuv's threadpool. + * - If there is performance drop consider (in terms of file I/O or crypto operations) + * - - Increasing the capacity of the threadpool up-to 128 threads by setting UV_THREADPOOL_SIZE environment variable. + * - - Resolve hostname to IP address using dns.resolve* function and use IP address directly + * - Event loop monitoring / https://github.com/mcollina/loopbench + */ From 0f328518eccf0dabac1ac9afe1ca5187e1652139 Mon Sep 17 00:00:00 2001 From: Linnie Naryshkin Date: Tue, 31 Mar 2026 19:40:56 +0300 Subject: [PATCH 24/25] restructure: update README and move JS sandbox to nodejs/ --- README.md | 55 ++++- nodejs/event_loop_sandbox/index.js | 367 +++++++++++++++++++++++++++++ 2 files changed, 413 insertions(+), 9 deletions(-) create mode 100644 nodejs/event_loop_sandbox/index.js diff --git a/README.md b/README.md index 9826cb4..c215498 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,50 @@ -# learnuv +# experiment-libuv -This is a fork, where I did my playtime. Make sure to check the original repo [thlorenz/learnuv](https://github.com/thlorenz/learnuv) +This is a fork of [thlorenz/learnuv](https://github.com/thlorenz/learnuv), where I did my own exploration. -## Before You Start +## How it started -1. C Introduction - https://www.w3schools.com/c/c_intro.php -2. Pointers - https://www.w3schools.com/c/c_pointers.php +It all started with this article series: [Event Loop and the Big Picture — NodeJS Event Loop Part 1](https://blog.insiderattack.net/event-loop-and-the-big-picture-nodejs-event-loop-part-1-1cb67a182810). + +The articles explain how the Node.js event loop works under the hood, and how it maps to libuv phases. I wanted to go deeper — not just read about it, but actually run libuv locally and see it in action. + +So I forked `learnuv` and worked through the C exercises to understand the raw event loop: timers, I/O polling, idle handlers, check handlers, and close handlers. + +Once I had a feel for the libuv internals, I went back to Node.js and wrote [`nodejs/event_loop_sandbox/index.js`](nodejs/event_loop_sandbox/index.js) — a JavaScript sandbox that maps each libuv concept onto the corresponding Node.js APIs (`setTimeout`, `setImmediate`, `process.nextTick`, Promises, etc.). + +## Repository structure + +``` +src/ # C exercises using libuv (forked from learnuv) + 01_system_info.c + 02_idle.c + 03_fs_readsync.c + 04_fs_readasync.c + 05_fs_readasync_context.c + 06_fs_allasync.c + 07_tcp_echo_server.c + 08_horse_race.c + event_loop_sandbox/ # libuv event loop diagrams + libuv-event-loop.png + node-event-loop.png + ... +nodejs/ + event_loop_sandbox/ + index.js # Node.js sandbox mapping libuv phases to JS APIs +``` + +## Before You Start (C side) + +1. C Introduction — https://www.w3schools.com/c/c_intro.php +2. Pointers — https://www.w3schools.com/c/c_pointers.php 3. Address-Of / Dereference -4. Struct - https://www.w3schools.com/c/c_structs.php +4. Struct — https://www.w3schools.com/c/c_structs.php 5. Automatic Allocation vs Dynamic Allocation (malloc) 6. NULL -7. Typecast - https://www.tutorialspoint.com/cprogramming/c_type_casting.htm -8. LibUV guidebook (5 mins reading) - https://thlorenz.com/learnuv/book/ +7. Typecast — https://www.tutorialspoint.com/cprogramming/c_type_casting.htm +8. LibUV guidebook (5 mins reading) — https://thlorenz.com/learnuv/book/ -And of course a magnificent [LibUV Guidebook](https://docs.libuv.org/en/v1.x/guide/introduction.html) +And the official [LibUV documentation](https://docs.libuv.org/en/v1.x/guide/introduction.html). ## Setup for `macOS 14.5 23F79` @@ -50,6 +81,12 @@ open learnuv.xcodeproj ./learnuv verify ``` +## Running the Node.js sandbox + +```sh +node nodejs/event_loop_sandbox +``` + ## License MIT diff --git a/nodejs/event_loop_sandbox/index.js b/nodejs/event_loop_sandbox/index.js new file mode 100644 index 0000000..4c83d6f --- /dev/null +++ b/nodejs/event_loop_sandbox/index.js @@ -0,0 +1,367 @@ +/** + * @fileoverview Event loop sandbox, try to understand how libuv works from POINT OF VIEW of JavaScript. + * Inspired by this article circle + * @link Event Loop and the Big Picture (This article) - https://blog.insiderattack.net/event-loop-and-the-big-picture-nodejs-event-loop-part-1-1cb67a182810 + * @link Timers, Immediates and Next Ticks - https://blog.insiderattack.net/timers-immediates-and-process-nexttick-nodejs-event-loop-part-2-2c53fd511bb3 + * @link Promises, Next-Ticks, and Immediates - https://blog.insiderattack.net/promises-next-ticks-and-immediates-nodejs-event-loop-part-3-9226cbe7a6aa + * @link Handling I/O - https://blog.insiderattack.net/handling-io-nodejs-event-loop-part-4-418062f917d1 + * @link Event Loop Best Practices - https://blog.insiderattack.net/event-loop-best-practices-nodejs-event-loop-part-5-e29b2b50bfe2 + * @link New changes to timers and microtasks in Node v11 - https://blog.insiderattack.net/new-changes-to-timers-and-microtasks-from-node-v11-0-0-and-above-68d112743eb3 + * @link JavaScript Event Loop vs Node JS Event Loop - https://blog.insiderattack.net/javascript-event-loop-vs-node-js-event-loop-aea2b1b85f5c + +node nodejs/event_loop_sandbox + + */ + +console.log("Start of Script"); + +/** + * demultiplexer (libuv, libevent for Chrome) + * - receives I/O requests and delegates these requests to the appropriate hardware. + * - add the registered callback handler for the particular action (events) in a queue (Event Queue) to be processed + * - Reactor Pattern + * - epoll on Linux, kqueue on BSD systems (macOS), event ports in Solaris, IOCP (Input Output Completion Port) in Windows, etc + * - thread pool is used to handle the I/O operations, in case it cannot be directly addressed by hardware asynchronous I/O utils + * - NodeJS has done its best to do most of the I/O using non-blocking and asynchronous hardware I/O, but for the I/O types which blocks or are complex to address, it uses the thread pool. + */ + +/** + * Process vs Threads + * The primary difference between a process and a thread is that + * different processes cannot share the same memory space (code, variables, etc) + * whereas different threads in the same process share the same memory space. + * Threads are lightweight whereas Processes are heavyweight. + */ + +/** + * Threadpool + * - used to perform all File I/O operations, getaddrinfo and getnameinfo calls during DNS operations, randomBytes, randomFill and pbkdf2 are also run on the libuv thread pool + * - thread pool is limited (default size is 4, can be increased up to 128) + */ + +/** + * Event Loop (libuv, libevent for Chrome) + * - After processing one phase and before moving to the next phase, event loop will process two intermediate queues until no items are remaining in the intermediate queues. + * - Tracking the reference counter of total items to be processed - once it reaches zero, the event loop exits. + * 1. Expired timers and intervals queue (min-heap) (setTimeout, setInterval) + * 2. IO Events Queue + * 3. Immediate Queue (setImmediate) + * 4. Close Handlers Queue + * 0. (before moving between queues) Next Ticks Queue, Other Microtasks Queue (resolved/reject promise callbacks) + * - Next Ticks and Microtasks Queue will run between each individual setTimeout and setImmediate callbacks to match the browser behavior + */ + +/** + * Libuv Event Loop Phases + * 1. Timers — Expired timer and interval callbacks scheduled by `setTimeout` and `setInterval` will be invoked. + * 2. Pending I/O callbacks — Pending Callbacks of any completed/errored I/O operation to be executed here. + * 3. Idle, prepare — Used internally by NodeJS. + * 4. Prepare Handlers — Perform some prep-work before polling for I/O. + * 5. I/O Poll — Optionally wait for any I/O to complete. + * 6. Check handlers — Perform some post-mortem work after polling for I/O. Usually, callbacks scheduled by setImmediate will be invoked here. + * 7. Close handlers — Execute close handlers of any closed I/O operations (closed socket connection etc.) + * + * @link https://www.youtube.com/watch?v=sGTRmPiXD4Y + +// Check whether there are any referenced handlers to be invoked, or any active operations pending +r = uv__loop_alive(loop); +if (!r) + uv__update_time(loop); + +while (r != 0 && loop->stop_flag == 0) { + // This will send a system call to get the current time and update the loop time (This is used to identify expired timers). + uv__update_time(loop); + + // Run all expired timers + uv__run_timers(loop); + + // Run all completed/errored I/O callbacks + ran_pending = uv__run_pending(loop); + + uv__run_idle(loop); + uv__run_prepare(loop); + + // timeout to determine how long it should block for I/O + timeout = 0; + if ((mode == UV_RUN_ONCE && !ran_pending) || mode == UV_RUN_DEFAULT) + timeout = uv_backend_timeout(loop); + + // Poll for I/O, epoll_wait on Linux, kqueue on BSD systems (macOS), event ports in Solaris, GetQueuedCompletionStatus in IOCP (Input Output Completion Port) in Windows, etc + uv__io_poll(loop, timeout); + + // Run all check handlers (setImmediate callbacks will run here) + uv__run_check(loop); + + // Run all close handlers + uv__run_closing_handles(loop); + + if (mode == UV_RUN_ONCE) { + uv__update_time(loop); + uv__run_timers(loop); + } + + r = uv__loop_alive(loop); + if (mode == UV_RUN_ONCE || mode == UV_RUN_NOWAIT) + break; +} + + +// Event loop will keep spinning as long as uv__loop_alive function returns true. +static int uv__loop_alive(const uv_loop_t* loop) { + return uv__has_active_handles(loop) || + uv__has_active_reqs(loop) || + loop->closing_handles != NULL; +} + +static int uv__run_pending(uv_loop_t* loop) { + QUEUE* q; + QUEUE pq; + uv__io_t* w; + + if (QUEUE_EMPTY(&loop->pending_queue)) + return 0; + + QUEUE_MOVE(&loop->pending_queue, &pq); + + while (!QUEUE_EMPTY(&pq)) { + q = QUEUE_HEAD(&pq); + QUEUE_REMOVE(q); + QUEUE_INIT(q); + w = QUEUE_DATA(q, uv__io_t, pending_queue); + w->cb(loop, w, POLLOUT); + } + + return 1; +} + +int uv_backend_timeout(const uv_loop_t* loop) { + if (loop->stop_flag != 0) + return 0; + + if (!uv__has_active_handles(loop) && !uv__has_active_reqs(loop)) + return 0; + + if (!QUEUE_EMPTY(&loop->idle_handles)) + return 0; + + if (!QUEUE_EMPTY(&loop->pending_queue)) + return 0; + + if (loop->closing_handles) + return 0; + + return uv__next_timeout(loop); +} + +// The event loop will not be blocked if there are any pending tasks to be executed. If there are no pending tasks to be executed, it will only be blocked until the next timer goes off, which re-activates the loop. +int uv__next_timeout(const uv_loop_t* loop) { + const struct heap_node* heap_node; + const uv_timer_t* handle; + uint64_t diff; + + heap_node = heap_min((const struct heap*) &loop->timer_heap); + if (heap_node == NULL) + return -1; // block indefinitely + + handle = container_of(heap_node, uv_timer_t, heap_node); + if (handle->timeout <= loop->time) + return 0; + + diff = handle->timeout - loop->time; + if (diff > INT_MAX) + diff = INT_MAX; + + return diff; +} + */ + +/** + * Next tick queue is not natively provided by the libuv (four main phases), but implemented in Node. + */ +function nextTickQueue() { + setTimeout(() => console.log("timeout1")); + setTimeout(() => { + console.log("timeout2"); + Promise.resolve().then(() => console.log("promise resolve")); + }); + setTimeout(() => console.log("timeout3")); + setTimeout(() => console.log("timeout4")); +} +// nextTickQueue(); + +/** + * IO starvation + * - Extensively filling up the next tick queue using process.nextTick function will force the event loop to keep processing the next tick queue indefinitely without moving forward. + * TODO: Write a code snippet to demonstrate IO starvation + */ +function ioStarvation() { + function addNextTickRecurs(count) { + let self = this; + if (self.id === undefined) { + self.id = 0; + } + + if (self.id === count) return; + + process.nextTick(() => { + console.log(`process.nextTick call ${++self.id}`); + addNextTickRecurs.call(self, count); + }); + } + + addNextTickRecurs(10); + // Node add a timer to the timers heap (in memory) + setTimeout(console.log.bind(console, "omg! setTimeout was called"), 10); + setImmediate(console.log.bind(console, "omg! setImmediate also was called")); +} +// ioStarvation(); + +/** + * Node check against time expiration. + * Time is taken on each loop run + * @link https://docs.libuv.org/en/v1.x/design.html#the-i-o-loop | concept of 'now' + */ +function TimerExecution() { + const start = process.hrtime(); + + setTimeout(() => { + const end = process.hrtime(start); + console.log( + `timeout callback executed after ${end[0]}s and ${ + end[1] / Math.pow(10, 9) + }ms` + ); + }, 1000); +} +// TimerExecution(); + +/** + * As you might guess, this program will always print setTimeout before setImmediate + * because the expired timer queue are processed before immediate. + * !BUT + * The minimum timeout to 1ms in order to align with Chrome's timers cap + * @link https://chromium.googlesource.com/chromium/blink/+/master/Source/core/frame/DOMTimer.cpp#93 + * So sometimes, setImmediate will be executed before setTimeout. + */ +function TimeoutVsImmediate() { + setTimeout(function () { + console.log("setTimeout"); + }, 0); + setImmediate(function () { + console.log("setImmediate"); + }); +} +// TimeoutVsImmediate(); + +/** + * Next Ticks and Microtasks (resolved/reject promise) Queues (0) are processed before every phase of the event loop. + */ +function PromiseVsImmediate() { + new Promise(() => console.log("promise executor")); + Promise.resolve().then(() => console.log("promise1 resolved")); + Promise.resolve().then(() => console.log("promise2 resolved")); + Promise.resolve().then(() => { + console.log("promise3 resolved"); + process.nextTick(() => + console.log("next tick inside promise resolve handler") + ); + }); + Promise.resolve().then(() => console.log("promise4 resolved")); + Promise.resolve().then(() => console.log("promise5 resolved")); + /** + * Timeout (1) handled earlier than Immediate (3) + */ + setTimeout(() => console.log("setTimeout"), 0); + setImmediate(() => console.log("set immediate1")); + setImmediate(() => console.log("set immediate2")); +} +// PromiseVsImmediate(); + +/** + * It's the same example as PromiseVsImmediate + */ +function MicrotasksVsMacrotasks() { + queueMicrotask(() => console.log("queueMicrotask1 resolved")); + queueMicrotask(() => console.log("queueMicrotask2 resolved")); + setTimeout(() => { + console.log("set timeout3"); + queueMicrotask(() => console.log("inner queueMicrotask3 resolved")); + }, 0); + setTimeout(() => console.log("set timeout1"), 0); + setTimeout(() => console.log("set timeout2"), 0); + queueMicrotask(() => console.log("queueMicrotask4 resolved")); + queueMicrotask(() => { + console.log("queueMicrotask5 resolved"); + queueMicrotask(() => console.log("inner queueMicrotask6 resolved")); + }); + queueMicrotask(() => console.log("queueMicrotask7 resolved")); +} +// MicrotasksVsMacrotasks(); + +/** + * Even if you have set the timeout to 0, all NodeJS timers seem to have fired after at least1ms. + * Chrome seems to cap the minimum timeout to 1ms for the first 4 nested timers. But afterwards, the cap seems to be increased to 4ms. + * > "Timers can be nested; after five such nested timers, however, the interval is forced to be at least four milliseconds." + * Both NodeJS and Chrome enforces a 1ms minimum timeout to all the timers + */ +function TimerRace() { + const startHrTime = () => { + if (typeof window !== "undefined") return performance.now(); + return process.hrtime(); + }; + + const getHrTimeDiff = (start) => { + if (typeof window !== "undefined") return performance.now() - start; + const [ts, tns] = process.hrtime(start); + return ts * 1e3 + tns / 1e6; + }; + + console.log("TimerRace starts"); + const start1 = startHrTime(); + const outerTimer = setTimeout(() => { + const start2 = startHrTime(); + console.log(`timer1: ${getHrTimeDiff(start1)}`); + setTimeout(() => { + const start3 = startHrTime(); + console.log(`timer2: ${getHrTimeDiff(start2)}`); + setTimeout(() => { + const start4 = startHrTime(); + console.log(`timer3: ${getHrTimeDiff(start3)}`); + setTimeout(() => { + const start5 = startHrTime(); + console.log(`timer4: ${getHrTimeDiff(start4)}`); + setTimeout(() => { + const start6 = startHrTime(); + console.log(`timer5: ${getHrTimeDiff(start5)}`); + setTimeout(() => { + const start7 = startHrTime(); + console.log(`timer6: ${getHrTimeDiff(start6)}`); + setTimeout(() => { + const start8 = startHrTime(); + console.log(`timer7: ${getHrTimeDiff(start7)}`); + setTimeout(() => { + console.log(`timer8: ${getHrTimeDiff(start8)}`); + }); + }); + }); + }); + }); + }); + }); + }); +} +TimerRace(); + +console.log("End of Script"); + +/** + * Best Practices + * - Avoid sync I/O inside repeatedly invoked code blocks + * - dns.lookup() vs dns.resolve*() + * > These functions are implemented quite differently than dns.lookup(). (dns.resolve does not overload the libuv threadpool) + * > They do not use getaddrinfo(3) and they always perform a DNS query on the network. This network communication is always done asynchronously, and does not use libuv's threadpool. + * - If there is performance drop consider (in terms of file I/O or crypto operations) + * - - Increasing the capacity of the threadpool up-to 128 threads by setting UV_THREADPOOL_SIZE environment variable. + * - - Resolve hostname to IP address using dns.resolve* function and use IP address directly + * - Event loop monitoring / https://github.com/mcollina/loopbench + */ From 3e1ddf9ad1aca9de4d7b1dd1177fe4827cc856a8 Mon Sep 17 00:00:00 2001 From: Linnie Naryshkin Date: Tue, 31 Mar 2026 19:41:03 +0300 Subject: [PATCH 25/25] move: event_loop_sandbox/index.js to nodejs/ --- src/event_loop_sandbox/index.js | 367 -------------------------------- 1 file changed, 367 deletions(-) delete mode 100644 src/event_loop_sandbox/index.js diff --git a/src/event_loop_sandbox/index.js b/src/event_loop_sandbox/index.js deleted file mode 100644 index 045b08c..0000000 --- a/src/event_loop_sandbox/index.js +++ /dev/null @@ -1,367 +0,0 @@ -/** - * @fileoverview Event loop sandbox, try to understand how libuv works from POINT OF VIEW of JavaScript. - * Inspired by this article circle - * @link Event Loop and the Big Picture (This article) - https://blog.insiderattack.net/event-loop-and-the-big-picture-nodejs-event-loop-part-1-1cb67a182810 - * @link Timers, Immediates and Next Ticks - https://blog.insiderattack.net/timers-immediates-and-process-nexttick-nodejs-event-loop-part-2-2c53fd511bb3 - * @link Promises, Next-Ticks, and Immediates - https://blog.insiderattack.net/promises-next-ticks-and-immediates-nodejs-event-loop-part-3-9226cbe7a6aa - * @link Handling I/O - https://blog.insiderattack.net/handling-io-nodejs-event-loop-part-4-418062f917d1 - * @link Event Loop Best Practices - https://blog.insiderattack.net/event-loop-best-practices-nodejs-event-loop-part-5-e29b2b50bfe2 - * @link New changes to timers and microtasks in Node v11 - https://blog.insiderattack.net/new-changes-to-timers-and-microtasks-from-node-v11-0-0-and-above-68d112743eb3 - * @link JavaScript Event Loop vs Node JS Event Loop - https://blog.insiderattack.net/javascript-event-loop-vs-node-js-event-loop-aea2b1b85f5c - -node src/event_loop_sandbox - - */ - -console.log("Start of Script"); - -/** - * demultiplexer (libuv, libevent for Chrome) - * - receives I/O requests and delegates these requests to the appropriate hardware. - * - add the registered callback handler for the particular action (events) in a queue (Event Queue) to be processed - * - Reactor Pattern - * - epoll on Linux, kqueue on BSD systems (macOS), event ports in Solaris, IOCP (Input Output Completion Port) in Windows, etc - * - thread pool is used to handle the I/O operations, in case it cannot be directly addressed by hardware asynchronous I/O utils - * - NodeJS has done its best to do most of the I/O using non-blocking and asynchronous hardware I/O, but for the I/O types which blocks or are complex to address, it uses the thread pool. - */ - -/** - * Process vs Threads - * The primary difference between a process and a thread is that - * different processes cannot share the same memory space (code, variables, etc) - * whereas different threads in the same process share the same memory space. - * Threads are lightweight whereas Processes are heavyweight. - */ - -/** - * Threadpool - * - used to perform all File I/O operations, getaddrinfo and getnameinfo calls during DNS operations, randomBytes, randomFill and pbkdf2 are also run on the libuv thread pool - * - thread pool is limited (default size is 4, can be increased up to 128) - */ - -/** - * Event Loop (libuv, libevent for Chrome) - * - After processing one phase and before moving to the next phase, event loop will process two intermediate queues until no items are remaining in the intermediate queues. - * - Tracking the reference counter of total items to be processed - once it reaches zero, the event loop exits. - * 1. Expired timers and intervals queue (min-heap) (setTimeout, setInterval) - * 2. IO Events Queue - * 3. Immediate Queue (setImmediate) - * 4. Close Handlers Queue - * 0. (before moving between queues) Next Ticks Queue, Other Microtasks Queue (resolved/reject promise callbacks) - * - Next Ticks and Microtasks Queue will run between each individual setTimeout and setImmediate callbacks to match the browser behavior - */ - -/** - * Libuv Event Loop Phases - * 1. Timers — Expired timer and interval callbacks scheduled by `setTimeout` and `setInterval` will be invoked. - * 2. Pending I/O callbacks — Pending Callbacks of any completed/errored I/O operation to be executed here. - * 3. Idle, prepare — Used internally by NodeJS. - * 4. Prepare Handlers — Perform some prep-work before polling for I/O. - * 5. I/O Poll — Optionally wait for any I/O to complete. - * 6. Check handlers — Perform some post-mortem work after polling for I/O. Usually, callbacks scheduled by setImmediate will be invoked here. - * 7. Close handlers — Execute close handlers of any closed I/O operations (closed socket connection etc.) - * - * @link https://www.youtube.com/watch?v=sGTRmPiXD4Y - -// Check whether there are any referenced handlers to be invoked, or any active operations pending -r = uv__loop_alive(loop); -if (!r) - uv__update_time(loop); - -while (r != 0 && loop->stop_flag == 0) { - // This will send a system call to get the current time and update the loop time (This is used to identify expired timers). - uv__update_time(loop); - - // Run all expired timers - uv__run_timers(loop); - - // Run all completed/errored I/O callbacks - ran_pending = uv__run_pending(loop); - - uv__run_idle(loop); - uv__run_prepare(loop); - - // timeout to determine how long it should block for I/O - timeout = 0; - if ((mode == UV_RUN_ONCE && !ran_pending) || mode == UV_RUN_DEFAULT) - timeout = uv_backend_timeout(loop); - - // Poll for I/O, epoll_wait on Linux, kqueue on BSD systems (macOS), event ports in Solaris, GetQueuedCompletionStatus in IOCP (Input Output Completion Port) in Windows, etc - uv__io_poll(loop, timeout); - - // Run all check handlers (setImmediate callbacks will run here) - uv__run_check(loop); - - // Run all close handlers - uv__run_closing_handles(loop); - - if (mode == UV_RUN_ONCE) { - uv__update_time(loop); - uv__run_timers(loop); - } - - r = uv__loop_alive(loop); - if (mode == UV_RUN_ONCE || mode == UV_RUN_NOWAIT) - break; -} - - -// Event loop will keep spinning as long as uv__loop_alive function returns true. -static int uv__loop_alive(const uv_loop_t* loop) { - return uv__has_active_handles(loop) || - uv__has_active_reqs(loop) || - loop->closing_handles != NULL; -} - -static int uv__run_pending(uv_loop_t* loop) { - QUEUE* q; - QUEUE pq; - uv__io_t* w; - - if (QUEUE_EMPTY(&loop->pending_queue)) - return 0; - - QUEUE_MOVE(&loop->pending_queue, &pq); - - while (!QUEUE_EMPTY(&pq)) { - q = QUEUE_HEAD(&pq); - QUEUE_REMOVE(q); - QUEUE_INIT(q); - w = QUEUE_DATA(q, uv__io_t, pending_queue); - w->cb(loop, w, POLLOUT); - } - - return 1; -} - -int uv_backend_timeout(const uv_loop_t* loop) { - if (loop->stop_flag != 0) - return 0; - - if (!uv__has_active_handles(loop) && !uv__has_active_reqs(loop)) - return 0; - - if (!QUEUE_EMPTY(&loop->idle_handles)) - return 0; - - if (!QUEUE_EMPTY(&loop->pending_queue)) - return 0; - - if (loop->closing_handles) - return 0; - - return uv__next_timeout(loop); -} - -// The event loop will not be blocked if there are any pending tasks to be executed. If there are no pending tasks to be executed, it will only be blocked until the next timer goes off, which re-activates the loop. -int uv__next_timeout(const uv_loop_t* loop) { - const struct heap_node* heap_node; - const uv_timer_t* handle; - uint64_t diff; - - heap_node = heap_min((const struct heap*) &loop->timer_heap); - if (heap_node == NULL) - return -1; // block indefinitely - - handle = container_of(heap_node, uv_timer_t, heap_node); - if (handle->timeout <= loop->time) - return 0; - - diff = handle->timeout - loop->time; - if (diff > INT_MAX) - diff = INT_MAX; - - return diff; -} - */ - -/** - * Next tick queue is not natively provided by the libuv (four main phases), but implemented in Node. - */ -function nextTickQueue() { - setTimeout(() => console.log("timeout1")); - setTimeout(() => { - console.log("timeout2"); - Promise.resolve().then(() => console.log("promise resolve")); - }); - setTimeout(() => console.log("timeout3")); - setTimeout(() => console.log("timeout4")); -} -// nextTickQueue(); - -/** - * IO starvation - * - Extensively filling up the next tick queue using process.nextTick function will force the event loop to keep processing the next tick queue indefinitely without moving forward. - * TODO: Write a code snippet to demonstrate IO starvation - */ -function ioStarvation() { - function addNextTickRecurs(count) { - let self = this; - if (self.id === undefined) { - self.id = 0; - } - - if (self.id === count) return; - - process.nextTick(() => { - console.log(`process.nextTick call ${++self.id}`); - addNextTickRecurs.call(self, count); - }); - } - - addNextTickRecurs(10); - // Node add a timer to the timers heap (in memory) - setTimeout(console.log.bind(console, "omg! setTimeout was called"), 10); - setImmediate(console.log.bind(console, "omg! setImmediate also was called")); -} -// ioStarvation(); - -/** - * Node check against time expiration. - * Time is taken on each loop run - * @link https://docs.libuv.org/en/v1.x/design.html#the-i-o-loop | concept of ‘now’ - */ -function TimerExecution() { - const start = process.hrtime(); - - setTimeout(() => { - const end = process.hrtime(start); - console.log( - `timeout callback executed after ${end[0]}s and ${ - end[1] / Math.pow(10, 9) - }ms` - ); - }, 1000); -} -// TimerExecution(); - -/** - * As you might guess, this program will always print setTimeout before setImmediate - * because the expired timer queue are processed before immediate. - * !BUT - * The minimum timeout to 1ms in order to align with Chrome’s timers cap - * @link https://chromium.googlesource.com/chromium/blink/+/master/Source/core/frame/DOMTimer.cpp#93 - * So sometimes, setImmediate will be executed before setTimeout. - */ -function TimeoutVsImmediate() { - setTimeout(function () { - console.log("setTimeout"); - }, 0); - setImmediate(function () { - console.log("setImmediate"); - }); -} -// TimeoutVsImmediate(); - -/** - * Next Ticks and Microtasks (resolved/reject promise) Queues (0) are processed before every phase of the event loop. - */ -function PromiseVsImmediate() { - new Promise(() => console.log("promise executor")); - Promise.resolve().then(() => console.log("promise1 resolved")); - Promise.resolve().then(() => console.log("promise2 resolved")); - Promise.resolve().then(() => { - console.log("promise3 resolved"); - process.nextTick(() => - console.log("next tick inside promise resolve handler") - ); - }); - Promise.resolve().then(() => console.log("promise4 resolved")); - Promise.resolve().then(() => console.log("promise5 resolved")); - /** - * Timeout (1) handled earlier than Immediate (3) - */ - setTimeout(() => console.log("setTimeout"), 0); - setImmediate(() => console.log("set immediate1")); - setImmediate(() => console.log("set immediate2")); -} -// PromiseVsImmediate(); - -/** - * It's the same example as PromiseVsImmediate - */ -function MicrotasksVsMacrotasks() { - queueMicrotask(() => console.log("queueMicrotask1 resolved")); - queueMicrotask(() => console.log("queueMicrotask2 resolved")); - setTimeout(() => { - console.log("set timeout3"); - queueMicrotask(() => console.log("inner queueMicrotask3 resolved")); - }, 0); - setTimeout(() => console.log("set timeout1"), 0); - setTimeout(() => console.log("set timeout2"), 0); - queueMicrotask(() => console.log("queueMicrotask4 resolved")); - queueMicrotask(() => { - console.log("queueMicrotask5 resolved"); - queueMicrotask(() => console.log("inner queueMicrotask6 resolved")); - }); - queueMicrotask(() => console.log("queueMicrotask7 resolved")); -} -// MicrotasksVsMacrotasks(); - -/** - * Even if you have set the timeout to 0, all NodeJS timers seem to have fired after at least1ms. - * Chrome seems to cap the minimum timeout to 1ms for the first 4 nested timers. But afterwards, the cap seems to be increased to 4ms. - * > “Timers can be nested; after five such nested timers, however, the interval is forced to be at least four milliseconds.” - * Both NodeJS and Chrome enforces a 1ms minimum timeout to all the timers - */ -function TimerRace() { - const startHrTime = () => { - if (typeof window !== "undefined") return performance.now(); - return process.hrtime(); - }; - - const getHrTimeDiff = (start) => { - if (typeof window !== "undefined") return performance.now() - start; - const [ts, tns] = process.hrtime(start); - return ts * 1e3 + tns / 1e6; - }; - - console.log("TimerRace starts"); - const start1 = startHrTime(); - const outerTimer = setTimeout(() => { - const start2 = startHrTime(); - console.log(`timer1: ${getHrTimeDiff(start1)}`); - setTimeout(() => { - const start3 = startHrTime(); - console.log(`timer2: ${getHrTimeDiff(start2)}`); - setTimeout(() => { - const start4 = startHrTime(); - console.log(`timer3: ${getHrTimeDiff(start3)}`); - setTimeout(() => { - const start5 = startHrTime(); - console.log(`timer4: ${getHrTimeDiff(start4)}`); - setTimeout(() => { - const start6 = startHrTime(); - console.log(`timer5: ${getHrTimeDiff(start5)}`); - setTimeout(() => { - const start7 = startHrTime(); - console.log(`timer6: ${getHrTimeDiff(start6)}`); - setTimeout(() => { - const start8 = startHrTime(); - console.log(`timer7: ${getHrTimeDiff(start7)}`); - setTimeout(() => { - console.log(`timer8: ${getHrTimeDiff(start8)}`); - }); - }); - }); - }); - }); - }); - }); - }); -} -TimerRace(); - -console.log("End of Script"); - -/** - * Best Practices - * - Avoid sync I/O inside repeatedly invoked code blocks - * - dns.lookup() vs dns.resolve*() - * > These functions are implemented quite differently than dns.lookup(). (dns.resolve does not overload the libuv threadpool) - * > They do not use getaddrinfo(3) and they always perform a DNS query on the network. This network communication is always done asynchronously, and does not use libuv's threadpool. - * - If there is performance drop consider (in terms of file I/O or crypto operations) - * - - Increasing the capacity of the threadpool up-to 128 threads by setting UV_THREADPOOL_SIZE environment variable. - * - - Resolve hostname to IP address using dns.resolve* function and use IP address directly - * - Event loop monitoring / https://github.com/mcollina/loopbench - */