Changeset 826
- Timestamp:
- Jun 5, 2004, 11:00:37 PM (20 years ago)
- File:
-
- 1 edited
-
trunk/ccl/lisp-kernel/thread_manager.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ccl/lisp-kernel/thread_manager.c
r673 r826 115 115 { 116 116 destroy_semaphore((void **)&m->signal); 117 free(m->malloced_ptr);117 postGCfree((void *)(m->malloced_ptr)); 118 118 } 119 119 … … 862 862 #endif 863 863 864 TCR *freed_tcrs = NULL; 865 866 void 867 enqueue_freed_tcr (TCR *tcr) 868 { 869 tcr->next = freed_tcrs; 870 freed_tcrs = tcr; 871 } 872 873 void 874 free_freed_tcrs () 875 { 876 TCR *current, *next; 877 878 for (current = freed_tcrs; current; current = next) { 879 next = current->next; 880 free(current); 881 } 882 freed_tcrs = NULL; 883 } 884 864 885 void 865 886 suspend_other_threads() … … 886 907 if ((other->osid == 0)) { 887 908 dequeue_tcr(other); 888 free(other);909 enqueue_freed_tcr(other); 889 910 } 890 911 } … … 899 920 resume_tcr(other); 900 921 } 922 free_freed_tcrs(); 901 923 UNLOCK(lisp_global(AREA_LOCK), current); 902 924 UNLOCK(lisp_global(TCR_LOCK), current);
Note:
See TracChangeset
for help on using the changeset viewer.
