changed code to lower the number of instance variables of the Semaphore class
This commit is contained in:
@ -155,9 +155,9 @@ clisck dump.
|
||||
if (self.server notNil)
|
||||
{
|
||||
server addConnection: clisck.
|
||||
'QQQQQQQQQQQQqqq' dump.
|
||||
if (clisck isKindOf: SyncSocket)
|
||||
{
|
||||
'SERVICE READLLY STARTING' dump.
|
||||
[clisck runService] fork.
|
||||
}
|
||||
}.
|
||||
|
@ -76,13 +76,12 @@ class Semaphore(Object)
|
||||
waiting_tail := nil.
|
||||
|
||||
var count := 0. ## semaphore signal count
|
||||
var(#get,#set) heapIndex := -1.
|
||||
|
||||
var fireTimeSec := 0,
|
||||
fireTimeNsec := 0,
|
||||
ioIndex := nil,
|
||||
ioHandle := nil,
|
||||
ioType := nil.
|
||||
var subtype := nil. ## nil, io, timed
|
||||
|
||||
var heapIndex := nil, ## overlaps as ioIndex
|
||||
fireTimeSec := nil, ## overlaps as ioHandle
|
||||
fireTimeNsec := nil. ## overlaps as ioType
|
||||
|
||||
var(#get,#set) signalAction := nil.
|
||||
|
||||
@ -105,6 +104,15 @@ class Semaphore(Object)
|
||||
|
||||
## ==================================================================
|
||||
|
||||
method heapIndex: index
|
||||
{
|
||||
self.heapIndex := index.
|
||||
}
|
||||
method headpIndex
|
||||
{
|
||||
^self.heapIndex.
|
||||
}
|
||||
|
||||
## ------------------------------------------
|
||||
## TODO: either put fireTimeNsec into implementation of fireTime, and related methods.
|
||||
## ------------------------------------------
|
||||
@ -160,7 +168,7 @@ class SemaphoreGroup(Object)
|
||||
{
|
||||
## the first two variables must match those of Semaphore.
|
||||
var waiting_head := nil,
|
||||
waiting_tail := nil,
|
||||
waiting_tail := nil.
|
||||
|
||||
var first_sem := nil,
|
||||
last_sem := nil,
|
||||
@ -283,7 +291,7 @@ class SemaphoreHeap(Object)
|
||||
| item |
|
||||
|
||||
item := self.arr at: anIndex.
|
||||
item heapIndex: -1.
|
||||
item heapIndex: nil.
|
||||
|
||||
self.arr at: anIndex put: aSemaphore.
|
||||
aSemaphore heapIndex: anIndex.
|
||||
@ -296,7 +304,7 @@ class SemaphoreHeap(Object)
|
||||
| item xitem |
|
||||
|
||||
item := self.arr at: anIndex.
|
||||
item heapIndex: -1.
|
||||
item heapIndex: nil.
|
||||
|
||||
self.size := self.size - 1.
|
||||
if (anIndex == self.size)
|
||||
|
@ -322,6 +322,7 @@ class SyncSocket(CoreSocket)
|
||||
{
|
||||
n := super readBytes: bytes.
|
||||
if (n >= 0) { ^n }.
|
||||
|
||||
if (self.tmoutsecs notNil) { System signal: self.tmoutsem afterSecs: self.tmoutsecs nanosecs: self.tmoutnsecs }.
|
||||
System signal: self.iosem onInput: self.handle.
|
||||
s := self.sg wait.
|
||||
|
Reference in New Issue
Block a user