kolibri-process terminate: release unused thread slot

git-svn-id: svn://kolibrios.org@4456 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Sergey Semyonov (Serge) 2014-01-15 04:56:14 +00:00
parent ee45e883b3
commit 9de1536468

View File

@ -413,6 +413,7 @@ endg
align 4 align 4
terminate: ; terminate application terminate: ; terminate application
destroy_thread:
.slot equ esp ;locals .slot equ esp ;locals
@ -428,8 +429,6 @@ terminate: ; terminate application
@@: @@:
lea edx, [SLOT_BASE+esi] lea edx, [SLOT_BASE+esi]
call scheduler_remove_thread call scheduler_remove_thread
;mov esi,process_terminating
;call sys_msg_board_str
call lock_application_table call lock_application_table
; if the process is in V86 mode... ; if the process is in V86 mode...
@ -449,7 +448,7 @@ terminate: ; terminate application
mov ecx, [esi+8] mov ecx, [esi+8]
mov [eax+SLOT_BASE+APPDATA.io_map+4], ecx mov [eax+SLOT_BASE+APPDATA.io_map+4], ecx
.nov86: .nov86:
;destroy per-thread kerlen objects
mov esi, [.slot] mov esi, [.slot]
shl esi, 8 shl esi, 8
add esi, SLOT_BASE+APP_OBJ_OFFSET add esi, SLOT_BASE+APP_OBJ_OFFSET
@ -467,11 +466,6 @@ terminate: ; terminate application
pop esi pop esi
jmp @B jmp @B
@@: @@:
mov eax, [.slot]
shl eax, 8
; stdcall destroy_app_space, [SLOT_BASE+eax+APPDATA.process], [SLOT_BASE+eax+APPDATA.dlls_list_ptr]
mov esi, [.slot] mov esi, [.slot]
cmp [fpu_owner], esi ; if user fpu last -> fpu user = 2 cmp [fpu_owner], esi ; if user fpu last -> fpu user = 2
jne @F jne @F
@ -745,7 +739,9 @@ terminate: ; terminate application
add ecx, 0x100 add ecx, 0x100
jmp .xd0 jmp .xd0
.xd1: .xd1:
; call systest ;release slot
bts [thr_slot_map], esi
sti ; .. and life goes on sti ; .. and life goes on
mov eax, [draw_limits.left] mov eax, [draw_limits.left]
@ -764,14 +760,6 @@ terminate: ; terminate application
ret ret
restore .slot restore .slot
;build_scheduler:
; mov esi, boot_sched_1
; call boot_log
; call build_process_gdt_tss_pointer
; mov esi,boot_sched_2
; call boot_log
; ret
; Three following procedures are used to guarantee that ; Three following procedures are used to guarantee that
; some part of kernel code will not be terminated from outside ; some part of kernel code will not be terminated from outside