Subject: CVS commit: syssrc/sys/compat/irix
To: None <source-changes@netbsd.org>
From: Emmanuel Dreyfus <manu@netbsd.org>
List: source-changes
Date: 05/27/2002 00:37:15
Module Name:	syssrc
Committed By:	manu
Date:		Sun May 26 21:37:14 UTC 2002

Modified Files:
	syssrc/sys/compat/irix: files.irix irix_usema.c irix_usema.h
Removed Files:
	syssrc/sys/compat/irix: irix_usync.c irix_usync.h

Log Message:
- When requested a semamphore count, the userlands expects the kernel to
return the number of processes waiting on the semaphore. We now maintiain
a count of waiting processes.
- Blocked processes are unblocked "first in, first out". We now have a
queue of waiting processes on a asemaphores, so that we can wakeup the
first blocked process.

Problems:
- We now have a lot of dynamic memory allocation, it may be a bit slow.
- Nothing is SMP safe for now. We need to add locks.
- On close, we forget about a semaphore, which is incorrect. One process
  can close its fd attached on a semaphore, but other processes  would carry
  on using it. Since any process can join a shared arena, this is not an
  easy thing to solve.
- A lot of usema/usync functionnalities are still to be discovered.


To generate a diff of this commit:
cvs rdiff -r1.22 -r1.23 syssrc/sys/compat/irix/files.irix
cvs rdiff -r1.2 -r1.3 syssrc/sys/compat/irix/irix_usema.c \
    syssrc/sys/compat/irix/irix_usema.h
cvs rdiff -r1.2 -r0 syssrc/sys/compat/irix/irix_usync.c \
    syssrc/sys/compat/irix/irix_usync.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.