public inbox for [email protected]
 help / color / mirror / Atom feed
From: Ammar Faizi <[email protected]>
To: Alviro Iskandar Setiawan <[email protected]>
Cc: Ammar Faizi <[email protected]>,
	Muhammad Rizki <[email protected]>,
	Kanna Scarlet <[email protected]>,
	GNU/Weeb Mailing List <[email protected]>
Subject: [PATCH v1 00/22] ncns updates
Date: Sun, 21 Aug 2022 18:24:31 +0700	[thread overview]
Message-ID: <[email protected]> (raw)

Hi Al,

This series contains ncns updates. There are 22 patches in this series.

Some interesting things here are:

  1) Refactor ring.

  2) Refactor NodeJS interface.

  3) New features:

    - Support chunked upload.

      Make it able to send request body progressively.

    - Support custom method.

      By defautlt, the chromium HTTP request will perform an HTTP GET.
      Make it possible to set the HTTP method from the NodeJS. Also,
      change the internal string storage to std::string, because if we
      use a `const char *`, it make the lifetime management harder with
      respoect to the caller.

  4) Increase max ring entry.

      Make it able to handle bigger ring size. I have tested this with 2G
      entry and it works fine. Didn't manage to test chnet though, only
      nop SQEs.

  5) Various bug fixes:

    - Add `-Wno-enum-constexpr-conversion` flag (fix for clang-16).

      See: https://github.com/nodejs/node-addon-api/issues/1198

    - Use busy-waiting for signal waiter.

      Sometimes the worker stuck on sig.Wait(), it seems the signaling
      mechanism was implemeted wrongly. Just use a busy-waiting which
      is easier to implement. There is nothing to worry much about
      wasting CPU cycle as the waiting period must be very short, if
      it's not short, then something has gone very wrong!

      Also, PostTask() may fail, handle this failure.

Signed-off-by: Ammar Faizi <[email protected]>
---
Ammar Faizi (22):
  chnet: Add initial request body support
  chnet: node: Add set_user_data support on SQE
  tests/js/ring: Update the unit test to utilize set_user_data
  binding.gyp: Add `-ggdb3` flag for better debugging experience
  binding.gyp: Add `-Wno-enum-constexpr-conversion` flag
  chnet: node: Add set_method function to set HTTP method
  chnet: node: Add get_error function to return the error string
  chnet: node: Add set_payload function to set HTTP req body
  tests/js/ring: Add simple HTTP POST request example in NodeJS
  chnet: Split construct URL req creation into a new function
  chnet: Add set request header support
  chnet: node: Fix unused variable warning
  chnet: node: Add set request header function in NodeJS
  tests/js/ring: Add more set header function test
  chnet: node: Don't use static counter for data ID
  tests/js/ring: Add JavaScript class wrapper example
  chnet: Initial chunked request body support
  chnet: Rework the chunked request body interface
  chnet: ring: Refactor the ring completely
  chnet: Use busy-waiting for signal waiter
  chnet: ring: Bump max_entry to 2G
  tests/cpp: Delete basic.cpp as it's no longer relevant

 binding.gyp         |   4 +-
 chnet/WorkQueue.cc  |  17 +-
 chnet/WorkQueue.h   |   5 +
 chnet/chnet.cc      | 321 +++++++++++++++++++++++--
 chnet/chnet.h       |  88 ++++++-
 chnet/chnet_node.cc | 564 ++++++++++++++++++++++++++++++++++----------
 chnet/chnet_node.h  |   6 -
 chnet/chnet_ring.cc | 466 ++++++++++++++++++------------------
 chnet/chnet_ring.h  | 200 +++++++++-------
 chnet/common.h      |  20 +-
 tests/cpp/basic.cc  |  97 --------
 tests/cpp/ring.cc   | 425 +++++++++++++++++++++++++--------
 tests/index.php     |  14 ++
 tests/js/ring.js    | 405 ++++++++++++++++++++++++++-----
 14 files changed, 1874 insertions(+), 758 deletions(-)
 delete mode 100644 tests/cpp/basic.cc


base-commit: 7914975d89b6cb947de27b17df13b2f4830197a1
-- 
Ammar Faizi


             reply	other threads:[~2022-08-21 11:25 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-21 11:24 Ammar Faizi [this message]
2022-08-21 11:24 ` [PATCH v1 01/22] chnet: Add initial request body support Ammar Faizi
2022-08-21 11:24 ` [PATCH v1 02/22] chnet: node: Add set_user_data support on SQE Ammar Faizi
2022-08-21 11:24 ` [PATCH v1 03/22] tests/js/ring: Update the unit test to utilize set_user_data Ammar Faizi
2022-08-21 11:24 ` [PATCH v1 04/22] binding.gyp: Add `-ggdb3` flag for better debugging experience Ammar Faizi
2022-08-21 11:24 ` [PATCH v1 05/22] binding.gyp: Add `-Wno-enum-constexpr-conversion` flag Ammar Faizi
2022-08-21 11:24 ` [PATCH v1 06/22] chnet: node: Add set_method function to set HTTP method Ammar Faizi
2022-08-21 11:24 ` [PATCH v1 07/22] chnet: node: Add get_error function to return the error string Ammar Faizi
2022-08-21 11:24 ` [PATCH v1 08/22] chnet: node: Add set_payload function to set HTTP req body Ammar Faizi
2022-08-21 11:24 ` [PATCH v1 09/22] tests/js/ring: Add simple HTTP POST request example in NodeJS Ammar Faizi
2022-08-21 11:24 ` [PATCH v1 10/22] chnet: Split construct URL req creation into a new function Ammar Faizi
2022-08-21 11:24 ` [PATCH v1 11/22] chnet: Add set request header support Ammar Faizi
2022-08-21 11:24 ` [PATCH v1 12/22] chnet: node: Fix unused variable warning Ammar Faizi
2022-08-21 11:24 ` [PATCH v1 13/22] chnet: node: Add set request header function in NodeJS Ammar Faizi
2022-08-21 11:24 ` [PATCH v1 14/22] tests/js/ring: Add more set header function test Ammar Faizi
2022-08-21 11:24 ` [PATCH v1 15/22] chnet: node: Don't use static counter for data ID Ammar Faizi
2022-08-21 11:24 ` [PATCH v1 16/22] tests/js/ring: Add JavaScript class wrapper example Ammar Faizi
2022-08-21 11:24 ` [PATCH v1 17/22] chnet: Initial chunked request body support Ammar Faizi
2022-08-21 22:13   ` Alviro Iskandar Setiawan
2022-08-22  3:08     ` Ammar Faizi
2022-08-21 11:24 ` [PATCH v1 18/22] chnet: Rework the chunked request body interface Ammar Faizi
2022-08-21 22:20   ` Alviro Iskandar Setiawan
2022-08-21 11:24 ` [PATCH v1 19/22] chnet: ring: Refactor the ring completely Ammar Faizi
2022-08-21 11:24 ` [PATCH v1 20/22] chnet: Use busy-waiting for signal waiter Ammar Faizi
2022-08-21 22:29   ` Alviro Iskandar Setiawan
2022-08-21 11:24 ` [PATCH v1 21/22] chnet: ring: Bump max_entry to 2G Ammar Faizi
2022-08-21 11:24 ` [PATCH v1 22/22] tests/cpp: Delete basic.cpp as it's no longer relevant Ammar Faizi
2022-08-21 22:21   ` Alviro Iskandar Setiawan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    [email protected] \
    [email protected] \
    [email protected] \
    [email protected] \
    [email protected] \
    [email protected] \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox