Rev 4457 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4457 | Rev 4459 | ||
---|---|---|---|
Line 416... | Line 416... | ||
416 | destroy_thread: |
416 | destroy_thread: |
Line 417... | Line 417... | ||
417 | 417 | ||
418 | .slot equ esp+4 ;locals |
418 | .slot equ esp+4 ;locals |
Line -... | Line 419... | ||
- | 419 | .process equ esp ;ptr to parent process |
|
- | 420 | ||
419 | .process equ esp ;ptr to parent process |
421 | xchg bx, bx |
Line 420... | Line 422... | ||
420 | 422 | ||
421 | push esi ;save .slot |
423 | push esi ;save .slot |
422 | 424 | ||
Line 749... | Line 751... | ||
749 | 751 | ||
Line 750... | Line 752... | ||
750 | xchg bx, bx |
752 | xchg bx, bx |
Line 751... | Line 753... | ||
751 | 753 | ||
752 | bts [thr_slot_map], esi |
754 | bts [thr_slot_map], esi |
753 | 755 | ||
754 | mov ebx, [.process] |
756 | mov ecx, [.process] |
Line 755... | Line 757... | ||
755 | add ebx, PROC.thr_list |
757 | lea eax, [ecx+PROC.thr_list] |
756 | cmp ebx, [ebx+LHEAD.next] |
- | |
757 | jne @F |
758 | cmp eax, [eax+LHEAD.next] |
758 | 759 | jne @F |
|
Line 759... | Line 760... | ||
759 | DEBUGF 1,"%s",msg_process_destroy |
760 | |
760 | 761 | call destroy_process.internal |
|
Line 776... | Line 777... | ||
776 | add esp, 8 |
777 | add esp, 8 |
777 | ret |
778 | ret |
778 | restore .slot |
779 | restore .slot |
779 | restore .process |
780 | restore .process |
Line 780... | Line -... | ||
780 | - | ||
781 | msg_process_destroy: db 'K: destroy process', 0x0d, 0x0a,0 |
- | |
782 | - | ||
783 | 781 | ||
784 | ; Three following procedures are used to guarantee that |
782 | ; Three following procedures are used to guarantee that |
785 | ; some part of kernel code will not be terminated from outside |
783 | ; some part of kernel code will not be terminated from outside |
786 | ; while it is running. |
784 | ; while it is running. |
787 | ; Note: they do not protect a thread from terminating due to errors inside |
785 | ; Note: they do not protect a thread from terminating due to errors inside |