Enrico Granata

Results 35 comments of Enrico Granata

This should be possible to implement in userland by two cooperating processes. Doing it entirely in kernel space for a non-cooperating pair of processes is a tad bit harder. Mostly...

One way to do it would be to include the pointer to the sender's WQ in the message header. nullptr if the sender doesn't want to wait, otherwise a valid...

This should probably be done a tad bit different. A userspace daemon should spawn by init that receives log entries via messages from the rest of the system and aggregates...

select on a single file descriptor is quite definitely not hard to implement at all; select on multiple file descriptors (and the first one to unblock wins) is where it's...

Here's a general model: - `Filesystem::File` objects can have an (optional) `WaitQueue*` embedded; - if this is `nullptr` then the file is not waitable and selecting on it would immediately...

This is going to require a bit more work than a simple WaitQueue (although a WaitQueue is a critical building block) - waitable objects (e.g. semaphores) do a bit more...

One more interesting aspect of this is that waiting on a WaitQueue currently causes an immediate `yield` back to the scheduler - if one were to wait on multiple objects,...

See https://github.com/egranata/puppy/issues/168

I made a fair bit of progress on this. The core of the strategy is based upon the notion of "features" - the kernel exports a list of features it...

This is a bit tricky do to because argv is an array; passing a string to userland is relatively easy with a fixed-size buffer, but passing an array is not...