Index: ossp-pkg/pth/ChangeLog RCS File: /v/ossp/cvs/ossp-pkg/pth/ChangeLog,v rcsdiff -q -kk '-r1.589' '-r1.590' -u '/v/ossp/cvs/ossp-pkg/pth/ChangeLog,v' 2>/dev/null --- ChangeLog 2002/11/07 15:21:06 1.589 +++ ChangeLog 2002/11/07 15:38:40 1.590 @@ -21,6 +21,9 @@ Changes between 1.4.1 and 1.5.0 (27-Jan-2002 to xx-Nov-2002) + *) Fix dropping of scheduler thread pools and this way fix memory leak. + [Ralf S. Engelschall] + *) Check for PTH_FDMODE_ERROR error conditions internally, too. [Ralf S. Engelschall] Index: ossp-pkg/pth/pth_sched.c RCS File: /v/ossp/cvs/ossp-pkg/pth/pth_sched.c,v rcsdiff -q -kk '-r1.84' '-r1.85' -u '/v/ossp/cvs/ossp-pkg/pth/pth_sched.c,v' 2>/dev/null --- pth_sched.c 2002/11/05 19:43:06 1.84 +++ pth_sched.c 2002/11/07 15:38:40 1.85 @@ -81,27 +81,27 @@ pth_t t; /* clear the new queue */ - while ((t = pth_pqueue_delmax(&pth_NQ)) != NULL); + while ((t = pth_pqueue_delmax(&pth_NQ)) != NULL) pth_tcb_free(t); pth_pqueue_init(&pth_NQ); /* clear the ready queue */ - while ((t = pth_pqueue_delmax(&pth_RQ)) != NULL); + while ((t = pth_pqueue_delmax(&pth_RQ)) != NULL) pth_tcb_free(t); pth_pqueue_init(&pth_RQ); /* clear the waiting queue */ - while ((t = pth_pqueue_delmax(&pth_WQ)) != NULL); + while ((t = pth_pqueue_delmax(&pth_WQ)) != NULL) pth_tcb_free(t); pth_pqueue_init(&pth_WQ); /* clear the suspend queue */ - while ((t = pth_pqueue_delmax(&pth_SQ)) != NULL); + while ((t = pth_pqueue_delmax(&pth_SQ)) != NULL) pth_tcb_free(t); pth_pqueue_init(&pth_SQ); /* clear the dead queue */ - while ((t = pth_pqueue_delmax(&pth_DQ)) != NULL); + while ((t = pth_pqueue_delmax(&pth_DQ)) != NULL) pth_tcb_free(t); pth_pqueue_init(&pth_DQ); return;