Changeset 296 for PinConnection/UCommThread.pas
- Timestamp:
- Nov 16, 2011, 7:24:09 AM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
PinConnection/UCommThread.pas
r293 r296 16 16 { TCommThreadReceiveThread } 17 17 18 TCommThreadReceiveThread = class(T ListedThread)18 TCommThreadReceiveThread = class(TTermThread) 19 19 public 20 20 Parent: TCommThread; … … 103 103 FReceiveThread.Start; 104 104 end else begin 105 FReceiveThread.Terminate;106 FReceiveThread.WaitFor;107 105 FreeAndNil(FReceiveThread); 108 106 end; … … 139 137 140 138 procedure TCommThreadReceiveThread.Execute; 139 var 140 TempStatus: Integer; 141 141 begin 142 try 143 with Parent do 144 repeat 145 // Check if new data arrived 146 if FDataAvailable.WaitFor(1) = wrSignaled then 142 with Parent do 143 repeat 144 // Check if new data arrived 145 if FDataAvailable.WaitFor(1) = wrSignaled then begin 147 146 try 148 147 FInputBufferLock.Acquire; 149 148 Stream.Size := 0; 150 149 Stream.WriteStream(FInputBuffer, FInputBuffer.Size); 151 Pin.Send(Stream);152 finally153 150 FDataAvailable.ResetEvent; 154 151 FInputBuffer.Clear; 152 finally 155 153 FInputBufferLock.Release; 156 154 end; // else Yield; 155 Pin.Send(Stream); 156 end; 157 157 158 159 if FStatusEvent.WaitFor(0) = wrSignaled then158 // Check if state changed 159 if FStatusEvent.WaitFor(0) = wrSignaled then begin 160 160 try 161 161 FInputBufferLock.Acquire; 162 Pin.Status := FStatusValue;162 TempStatus := FStatusValue; 163 163 finally 164 164 FStatusEvent.ResetEvent; 165 165 FInputBufferLock.Release; 166 166 end; 167 until Terminated;168 finally169 end;167 Pin.Status := TempStatus; 168 end; 169 until Terminated; 170 170 end; 171 171
Note:
See TracChangeset
for help on using the changeset viewer.