revised io semaphore handling routines

This commit is contained in:
hyunghwan.chung
2017-12-25 18:35:23 +00:00
parent 3d0bcf970e
commit 959c376308
9 changed files with 193 additions and 126 deletions

View File

@ -58,9 +58,9 @@ class Semaphore(Object)
var fireTimeSec := 0,
fireTimeNsec := 0,
ioIndex := -1,
ioIndex := nil,
ioHandle := nil,
ioMask := nil.
ioType := nil.
var(#get,#set) signalAction := nil.

View File

@ -104,7 +104,6 @@ class System(Apex)
method(#class,#primitive) signal: semaphore afterSecs: secs.
method(#class,#primitive) signal: semaphore afterSecs: secs nanosecs: nanosecs.
method(#class,#primitive) signal: semaphore onInOutput: file.
method(#class,#primitive) signal: semaphore onInput: file.
method(#class,#primitive) signal: semaphore onOutput: file.
method(#class,#primitive) signalOnGCFin: semaphore.

View File

@ -46,8 +46,10 @@ class MyObject(Object)
[ sg wait. ] fork.
[ sg wait. ] fork.
##System sleepForSecs: 1.
sg wait.
sg removeSemaphore: s1.
'********** END OF TESTER *************' dump.
}
method(#class) main
@ -66,6 +68,8 @@ sg removeSemaphore: s1.
| tb |
tb := tc at: idx.
System log(System.Log.INFO, idx asString, (if (tb value) { ' PASS' } else { ' FAIL' }), S'\n').
]
].
'********** END OF MAIN PROGRAM *************' dump.
}
}