Rev 8130 | Rev 9709 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 8130 | Rev 8876 | ||
---|---|---|---|
Line 3... | Line 3... | ||
3 | ;; Copyright (C) KolibriOS team 2004-2017. All rights reserved. ;; |
3 | ;; Copyright (C) KolibriOS team 2004-2017. All rights reserved. ;; |
4 | ;; Distributed under terms of the GNU General Public License. ;; |
4 | ;; Distributed under terms of the GNU General Public License. ;; |
5 | ;; ;; |
5 | ;; ;; |
6 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
6 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
Line 7... | Line 7... | ||
7 | 7 | ||
Line 8... | Line 8... | ||
8 | $Revision: 8130 $ |
8 | $Revision: 8876 $ |
9 | 9 | ||
Line 10... | Line 10... | ||
10 | F_READ = 0x0001 ; file opened for reading |
10 | F_READ = 0x0001 ; file opened for reading |
Line 179... | Line 179... | ||
179 | lea ecx, [ebp+PIPE.wlist] |
179 | lea ecx, [ebp+PIPE.wlist] |
180 | cmp ecx, [ebp+PIPE.wlist.next] |
180 | cmp ecx, [ebp+PIPE.wlist.next] |
181 | je @F |
181 | je @F |
Line 182... | Line 182... | ||
182 | 182 | ||
183 | mov ecx, [ecx+MUTEX_WAITER.task] |
183 | mov ecx, [ecx+MUTEX_WAITER.task] |
184 | mov [ecx+TASKDATA.state], 0 ;activate writer task |
184 | mov [ecx+TASKDATA.state], TSTATE_RUNNING ;activate writer task |
185 | @@: |
185 | @@: |
186 | cmp [ebp+PIPE.count], 0 |
186 | cmp [ebp+PIPE.count], 0 |
Line 187... | Line 187... | ||
187 | je @F |
187 | je @F |
188 | 188 | ||
189 | lea eax, [ebp+PIPE.rlist] |
189 | lea eax, [ebp+PIPE.rlist] |
Line 190... | Line 190... | ||
190 | cmp eax, [ebp+PIPE.rlist.next] |
190 | cmp eax, [ebp+PIPE.rlist.next] |
191 | je @F |
191 | je @F |
192 | 192 | ||
193 | mov eax, [eax+MUTEX_WAITER.task] |
193 | mov eax, [eax+MUTEX_WAITER.task] |
194 | mov [eax+TASKDATA.state], 0 ;activate reader task |
194 | mov [eax+TASKDATA.state], TSTATE_RUNNING ;activate reader task |
195 | @@: |
195 | @@: |
Line 209... | Line 209... | ||
209 | list_add_tail esp, edx ;esp= new waiter, edx= list head |
209 | list_add_tail esp, edx ;esp= new waiter, edx= list head |
Line 210... | Line 210... | ||
210 | 210 | ||
211 | lea ecx, [ebp+PIPE.pipe_lock] |
211 | lea ecx, [ebp+PIPE.pipe_lock] |
Line 212... | Line 212... | ||
212 | call mutex_unlock |
212 | call mutex_unlock |
213 | 213 | ||
Line 214... | Line 214... | ||
214 | mov [ebx+TASKDATA.state], 1 |
214 | mov [ebx+TASKDATA.state], TSTATE_RUN_SUSPENDED |
215 | call change_task |
215 | call change_task |
Line 274... | Line 274... | ||
274 | lea eax, [ebp+PIPE.rlist] |
274 | lea eax, [ebp+PIPE.rlist] |
275 | cmp eax, [ebp+PIPE.rlist.next] |
275 | cmp eax, [ebp+PIPE.rlist.next] |
276 | je @F |
276 | je @F |
Line 277... | Line 277... | ||
277 | 277 | ||
278 | mov eax, [eax+MUTEX_WAITER.task] |
278 | mov eax, [eax+MUTEX_WAITER.task] |
279 | mov [eax+TASKDATA.state], 0 ;activate reader task |
279 | mov [eax+TASKDATA.state], TSTATE_RUNNING ;activate reader task |
280 | @@: |
280 | @@: |
281 | cmp [ebp+PIPE.count], 4096 |
281 | cmp [ebp+PIPE.count], 4096 |
Line 282... | Line 282... | ||
282 | je @F |
282 | je @F |
283 | 283 | ||
284 | lea ecx, [ebp+PIPE.wlist] |
284 | lea ecx, [ebp+PIPE.wlist] |
Line 285... | Line 285... | ||
285 | cmp ecx, [ebp+PIPE.wlist.next] |
285 | cmp ecx, [ebp+PIPE.wlist.next] |
286 | je @F |
286 | je @F |
287 | 287 | ||
288 | mov ecx, [eax+MUTEX_WAITER.task] |
288 | mov ecx, [eax+MUTEX_WAITER.task] |
Line 289... | Line 289... | ||
289 | mov [ecx+TASKDATA.state], 0 ;activate writer task |
289 | mov [ecx+TASKDATA.state], TSTATE_RUNNING ;activate writer task |
290 | @@: |
290 | @@: |
Line 312... | Line 312... | ||
312 | list_add_tail esp, edx ;esp= new waiter, edx= list head |
312 | list_add_tail esp, edx ;esp= new waiter, edx= list head |
Line 313... | Line 313... | ||
313 | 313 | ||
314 | lea ecx, [ebp+PIPE.pipe_lock] |
314 | lea ecx, [ebp+PIPE.pipe_lock] |
Line 315... | Line 315... | ||
315 | call mutex_unlock |
315 | call mutex_unlock |
316 | 316 | ||
Line 317... | Line 317... | ||
317 | mov [ecx+TASKDATA.state], 1 |
317 | mov [ecx+TASKDATA.state], TSTATE_RUN_SUSPENDED |
318 | call change_task |
318 | call change_task |