Como funciona o modo UV_RUN_NOWAIT no libuv?

Ao executar um loop de eventos no libuv usando ouv_run função, há um parâmetro "mode" que é usado com os seguintes valores:

UV_RUN_DEFAULT
UV_RUN_ONCE
UV_RUN_NOWAIT

Os dois primeiros são óbvios.UV_RUN_DEFAULT executa o loop de eventos até que não haja mais eventos eUV_RUN_ONCE processamento de um único evento do loop. Contudo,UV_RUN_NOWAIT não parece ser um modo separado, mas sim um sinalizador que pode ser ORed com um dos outros dois valores.

Por padrão, essa função bloqueia até que os eventos sejam processados ​​eUV_RUN_NOWAIT torna não-bloqueante, mas qualquer documentação que eu possa encontrar nela termina aí. Minha pergunta é, se você executar o nonblocking do loop de eventos, como os callbacks são tratados?

O modelo de evento libuv é single-threaded (padrão de reator), então eu suponho que ele precisa bloquear para poder chamar os retornos de chamada, mas se o thread principal estiver ocupado, o que acontece com um evento depois de ser processado? O retorno de chamada será "enfileirado" até que o libuv controle novamente o segmento principal? Ou os retornos de chamada serão enviados em outro segmento?

questionAnswers(1)

yourAnswerToTheQuestion