分类:
2008-10-30 18:13:35
嵌入式系统中内存泄露危害很大,且不易查找,现在列出目前我知道的原因,后续不断补充。
[1]: malloc后没有free
[2]: 线程开启方式不适当。
线程运行结束后相关资源没有被释放。下面给一个安全的开线程的函数。
typedef pthread_t thread_T;
typedef void *(*pthread_startroutine_t) (void *);
typedef void *pthread_addr_t;
typedef void threadArg_T;
typedef void (*threadFunc_T)(void *);
thread_T
app_thread_create(int priority, threadFunc_T startFunc, threadArg_T *arg)
{
thread_T thread;
pthread_attr_t thread_attr;
struct sched_param param;
pthread_attr_init(&thread_attr);
/* pthread_attr_setinheritsched(PTHREAD_EXPLICT_SCHED); */
pthread_attr_setdetachstate(&thread_attr, PTHREAD_CREATE_DETACHED);
param.sched_priority = priority;
pthread_attr_setschedparam(&thread_attr, ¶m);