Subprocesos ocultos en Javascript / Node que nunca ejecutan código de usuario: ¿es posible, y si es así, podría conducir a una posibilidad arcana de una condición de carrera?

Vea la parte inferior de la pregunta para una actualización, basada en comentarios / respuestas: Esta pregunta es realmente sobre la posibilidad deoculto hilos que no ejecutan devoluciones de llamada.

Tengo una pregunta sobre un posible escenario arcano que involucra elMódulo de solicitud de nodo en el cual:

A la solicitud HTTP completa se construye y ejecuta a través de la red (Tomando muchos ms o incluso segundos)

...antes de se ejecuta una sola función en tiempo de ejecución en la máquina local (¿típicamente en nanosegundos?) - vea más abajo para más detalles

Estoy publicando esto principalmente como unprueba de cordura solo para asegurarme de que no estoy malinterpretando algo sobre el código del módulo Node / JS / Request.

Desde elejemplos en el módulo Solicitud (vea el SEGUNDO ejemplo en esa sección), es esto:

// Copied-and-pasted from the second example in the 
// Node Request library documentation, here:
// https://www.npmjs.com/package/request#examples

// ... My ARCANE SCENARIO is injected in the middle

var request = require('request')
  request(
    { method: 'GET'
    , uri: 'http://www.google.com'
    , gzip: true
    }
  , function (error, response, body) {
      // body is the decompressed response body 
      console.log('server encoded the data as: ' + (response.headers['content-encoding'] || 'identity'))
      console.log('the decoded data is: ' + body)
    }
  )

    // **************************************************** //
    // Is the following scenario possible?
    //
    // <-- HANG HANG HANG HANG HANG HANG HANG HANG HANG -->
    //
    // Let us pretend that the current thread HANGS here,
    // but that the request had time to be sent,
    // and the response is pending being received by the thread
    //
    // <-- HANG HANG HANG HANG HANG HANG HANG HANG HANG -->
    // **************************************************** //

.on('data', function(data) {
    // decompressed data as it is received 
    console.log('decoded chunk: ' + data)
  })
  .on('response', function(response) {
    // unmodified http.IncomingMessage object 
    response.on('data', function(data) {
      // compressed data as it is received 
      console.log('received ' + data.length + ' bytes of compressed data')
    })
  })

He indicado mi escenario arcano en el fragmento de código.

Supongamos que el proceso de Nodo se bloquea en el punto indicado, pero ese Nodo internamente (en unoculto hilo, invisible para Javascript, y por lo tanto no llamaalguna devoluciones de llamada) fue capaz de construir la solicitud y enviarla a través de la red; supongamos que el bloqueo continúa hasta que se recibe una respuesta (en dos fragmentos, por ejemplo) y se espera que Node la procese. (Este es el escenario que es ciertamente arcano, y que no estoy seguro de que sea teóricamente posible).

Luego, suponga que el bloqueo finaliza y que el hilo del Nodo anterior se despierta. Además, suponga que (de alguna manera) Node pudo procesar la respuesta hasta el punto de ejecutar la función de devolución de llamada en el código anterior (pero sin pasar del punto 'colgado' en el código en la ruta de código original, nuevamente , si esto es teóricamente posible).

¿Es teóricamente posible el escenario arcano anterior? De ser así, ¿no se recibirían los paquetes de datos a través de la red y se combinarían, listos para pasar a la función de devolución de llamada, antes de'data' evento fue programado en el objeto? En este caso, si es posible, me imagino que el'data' Se perdería el evento.

Una vez más, entiendo que este es un escenario arcano, tal vez ni siquiera es teóricamente posible, dados los mecanismos internos y la codificación involucrados.

Esa es mi pregunta: ¿es el escenario arcano anterior, con su condición de carrera extremadamente improbable, teóricamente posible?

Pido solo para asegurarme de que no me estoy perdiendo algún punto clave. Gracias.

ACTUALIZAR: De comentarios y respuestas: ahora he aclarado mi pregunta. El 'escenario arcano' requeriría que haya un hilo OCULTADO (que, por lo tanto, NO PUEDE ejecutar ningún código de USUARIO, incluidos CALLBACKS) que construya la solicitud, la envíe por la red y reciba la respuesta, SIN tener ninguna devolución de llamada para activar, incluido el'data' devolución de llamada - y se detiene en el momento en que el'response' la devolución de llamada está lista para ser llamada, esperando que el hilo JS visible (único) se active.

Respuestas a la pregunta(3)

Su respuesta a la pregunta