Notes on how to implement select()
authorJohn Hodge <[email protected]>
Sun, 27 Feb 2011 11:13:27 +0000 (19:13 +0800)
committerJohn Hodge <[email protected]>
Sun, 27 Feb 2011 11:13:27 +0000 (19:13 +0800)
Design Notes/VFS - Select.txt [new file with mode: 0644]

diff --git a/Design Notes/VFS - Select.txt b/Design Notes/VFS - Select.txt
new file mode 100644 (file)
index 0000000..cceef5c
--- /dev/null
@@ -0,0 +1,12 @@
+select()
+- Implemented using a wait queue for every file descriptor
+- That requires waiting on sockets to be centeralised
+
+All wait tasks (reads on VTerm, Pipes, PTYs, network sockets) use the kernel
+version of select with an inifinite timeout.
+They then signal the VFS using their VFS node pointer as a reference
+
+The VFS function select()
+- Maintains a list of processes on each node (if select has been called on that node)
+- Each process maybe has a semaphore on it (to use the semaphore code to maintain the process list)
+ > Could maybe use a mutex instead

UCC git Repository :: git.ucc.asn.au