发布网友
共1个回答
热心网友
原始版本的lwip忘光了,提供我修改的,希望有帮助/*线程空间池*/typedefstructtagNETTHREAD{BOOLstate;//状态intprio;//任务prioOS_STKthreadStk[NET_THREAD_STK_LEN];//堆栈空间}NETTHREAD,*PNETTHREAD;/*初始化线程空间*/staticBOOLThreadSpaceInit(void){inti;if((NET_THREAD_MAX_NUM+8+1)>OS_MAX_TASKS){//线程任务最大数目超过OS_MAX_TASKSreturnFALSE;}for(i=0;iserver,s,&NetThreads.threadStk[NET_THREAD_STK_LEN-1],NetThreads.prio)){return(int)&NetThreads;//返回线程id,必须在socket里面在添加一个域用来保存}NetThreads.state=THREAD_SPACE_STATE_FREE;}else{OS_EXIT_CRITICAL();}}returnERROR;}/*销毁一个线程*/voidNetThreadDel(void*s){PNETTHREADpt;//根据socket得到线程id(pt),//线程空间的state要设置为delpt->state=THREAD_SPACE_STATE_DELING;//在根据次id得到线程任务prio,删除任务OSTaskDel(pt->prio);}