Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 4457 → Rev 4456

/kernel/branches/kolibri-process/core/sys32.inc
415,21 → 415,18
terminate: ; terminate application
destroy_thread:
 
.slot equ esp+4 ;locals
.process equ esp ;ptr to parent process
.slot equ esp ;locals
 
push esi ;save .slot
 
shl esi, 8
mov edx, [SLOT_BASE+esi+APPDATA.process]
test edx, edx
jnz @F
cmp [SLOT_BASE+esi+APPDATA.process], 0
jne @F
pop esi
shl esi, 5
mov [CURRENT_TASK+esi+TASKDATA.state], 9
ret
@@:
push edx ;save .process
lea edx, [SLOT_BASE+esi]
call scheduler_remove_thread
call lock_application_table
627,9 → 624,6
je @F
call free_page
@@:
lea ebx, [edi+APPDATA.list]
list_del ebx ;destroys edx, ecx
 
mov eax, 0x20202020
stosd
stosd
746,19 → 740,8
jmp .xd0
.xd1:
;release slot
 
xchg bx, bx
 
bts [thr_slot_map], esi
 
mov ebx, [.process]
add ebx, PROC.thr_list
cmp ebx, [ebx+LHEAD.next]
jne @F
 
DEBUGF 1,"%s",msg_process_destroy
 
@@:
sti ; .. and life goes on
 
mov eax, [draw_limits.left]
773,14 → 756,11
call unlock_application_table
;mov esi,process_terminated
;call sys_msg_board_str
add esp, 8
add esp, 4
ret
restore .slot
restore .process
 
msg_process_destroy: db 'K: destroy process', 0x0d, 0x0a,0
 
 
; Three following procedures are used to guarantee that
; some part of kernel code will not be terminated from outside
; while it is running.
/kernel/branches/kolibri-process/core/taskman.inc
262,10 → 262,6
mov ebx, [slot_base]
mov [ebx+APPDATA.process], eax
 
lea edx, [ebx+APPDATA.list]
lea ecx, [eax+PROC.thr_list]
list_add_tail edx, ecx
 
xor edx, edx
cmp word [6], '02'
jne @f
984,10 → 980,6
mov eax, [ebx+APPDATA.process]
mov [edx+APPDATA.process], eax
 
lea ebx, [edx+APPDATA.list]
lea ecx, [eax+PROC.thr_list]
list_add_tail edx, ecx ;add thread to process child's list
 
mov eax, [ebx+APPDATA.tls_base]
test eax, eax
jz @F