1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-22 19:35:06 +00:00

Kernel: Add support for recv() with MSG_DONTWAIT.

Passing this flag to recv() temporarily puts the file descriptor into
non-blocking mode.

Also implement LocalSocket::recv() as a simple forwarding to read().
This commit is contained in:
Andreas Kling 2019-05-20 03:44:45 +02:00
parent 0b850cf726
commit b3a1671f1a
5 changed files with 23 additions and 7 deletions

View file

@ -223,10 +223,14 @@ bool Scheduler::pick_next()
});
#ifdef SCHEDULER_DEBUG
dbgprintf("Scheduler choices: (runnable threads: %p)\n", g_runnable_threads);
dbgprintf("Non-runnables:\n");
for (auto* thread = g_nonrunnable_threads->head(); thread; thread = thread->next()) {
auto* process = &thread->process();
dbgprintf("[K%x] % 12s %s(%u:%u) @ %w:%x\n", process, to_string(thread->state()), process->name().characters(), process->pid(), thread->tid(), thread->tss().cs, thread->tss().eip);
}
dbgprintf("Runnables:\n");
for (auto* thread = g_runnable_threads->head(); thread; thread = thread->next()) {
//if (process->state() == Thread::BlockedWait || process->state() == Thread::BlockedSleep)
// continue;
auto* process = &thread->process();
dbgprintf("[K%x] % 12s %s(%u:%u) @ %w:%x\n", process, to_string(thread->state()), process->name().characters(), process->pid(), thread->tid(), thread->tss().cs, thread->tss().eip);
}