implemented wait on a semaphore group and related semaphore handling
This commit is contained in:
@ -55,8 +55,9 @@ class Semaphore(Object)
|
||||
fireTimeNsec := 0,
|
||||
ioIndex := -1,
|
||||
ioHandle := nil,
|
||||
ioMask := 0,
|
||||
group := nil.
|
||||
ioMask := 0.
|
||||
|
||||
var(#get,#set) _group := nil.
|
||||
|
||||
method(#class) forMutualExclusion
|
||||
{
|
||||
@ -148,7 +149,7 @@ TODO: timed wait...
|
||||
}
|
||||
elsif (sem == zzz)
|
||||
{
|
||||
}
|
||||
}.
|
||||
}
|
||||
|
||||
============ CASE 2====================
|
||||
@ -225,8 +226,17 @@ method(#class,#abstract) xxx. => method(#class) xxx { self subclassResponsibilit
|
||||
|
||||
method initialize: arr
|
||||
{
|
||||
| i sem |
|
||||
self.size := arr size.
|
||||
self.semarr := arr.
|
||||
|
||||
i := 0.
|
||||
while (i < self.size)
|
||||
{
|
||||
sem := self.semarr at: i.
|
||||
sem _group: self.
|
||||
i := i + 1.
|
||||
}
|
||||
}
|
||||
|
||||
method(#primitive) wait.
|
||||
|
Reference in New Issue
Block a user