forked from KolibriOS/kolibrios
kolibri-process terminate: release unused thread slot
git-svn-id: svn://kolibrios.org@4456 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
ee45e883b3
commit
9de1536468
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user