Moved TCP slow timer handler to separate thread, to avoid possible deadlocks.

git-svn-id: svn://kolibrios.org@5013 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
hidnplayr
2014-07-30 09:44:18 +00:00
parent 90df12563a
commit ce330875f5
3 changed files with 29 additions and 11 deletions

View File

@@ -61,13 +61,18 @@ local .exit
}
;----------------------
; 640 ms timer
;----------------------
macro TCP_timer_640ms { ; TODO: implement timed wait timer!
align 4
proc TCP_timer_640ms ; TODO: implement timed wait timer!
local .loop
local .exit
xor esi, esi
mov ecx, MANUAL_DESTROY
call create_event
mov [TCP_timer1_event], eax
.wait:
mov eax, [TCP_timer1_event]
mov ebx, [eax + EVENT.id]
call wait_event
; Update TCP sequence number
@@ -81,7 +86,7 @@ local .exit
mov eax, [eax + SOCKET.NextPtr]
.check_only:
or eax, eax
jz .exit
jz .wait
cmp [eax + SOCKET.Domain], AF_INET4
jne .loop
@@ -157,9 +162,8 @@ local .exit
mov [eax + TCP_SOCKET.t_force], 0
jmp .loop
.exit:
}
endp