kernel: generalize awake
Awake can now interrupt several blocking syscalls (even during note handling). Among others, it can interrupt await, pread and pwrite. It cannot interrupt several others for different reasons: - awake cannot be interrupted by awake; - syscalls like remove and create can be used for kernel comunication and it would be hard to know if the effect occurred in the receiving fs if they were interrupted; - other syscalls do not need awake since they just provide access to kernel infos (eg seek or fd2path) NOTE: awakes registered before a note cannot occur during the note handling and will be deferred till the next call to noted.
This commit is contained in:
@@ -21,8 +21,8 @@ echo -n stop > /proc/$testpid/note
|
||||
|
||||
wait $testpid
|
||||
|
||||
if ( cat $test_output | grep 'waiting after first.........................................................................................................................................................................................................' > /dev/null ) {
|
||||
if ( cat $test_output | grep 'waiting after second.........................................................................................................................................................................................................' > /dev/null ) {
|
||||
if ( cat $test_output | grep 'waiting after first.......................' > /dev/null ) {
|
||||
if ( cat $test_output | grep 'waiting after second.......................' > /dev/null ) {
|
||||
if ( cat $test_output | grep 'PASS' > /dev/null ) {
|
||||
rm $test_output
|
||||
echo PASS
|
||||
|
Reference in New Issue
Block a user