- 论坛徽章:
- 0
|
创建tftp的子线程
static int StartTftpCtrlThread(T_USS_TFTP_DATA *tftpdata)
{
pthread_t tid;
int error = 0;
pthread_attr_t theAttr;
pthread_attr_init(&theAttr);
pthread_attr_setstacksize(&theAttr, 128*1024);
error=pthread_create(&tid, &theAttr, tsend, (void*)tftpdata);
if (0 != error)
{
my_printf("\n\rpthread_create tsend fail! error= %d ",error);
return -1;
}
error=pthread_detach(tid);
if (0 != error)
{
my_printf("\n\rpthread_detach tsend fail! error= %d ",error);
return -1;
}
return 0;
}
创建时有时会报 错误吗12(分配内存失败)
这个代码写的应该没问题吧? tftp server线程 是在一个大进程下的,大进程很大。
看了很多资料 该处理的都处理了 ulimit 、pthread_detach 而且我设置线程的大小才128K. 应该不会申请不到内存啊 这个程序创建子线程失败时 我又自己跑了个其他小程序创建线程 还是成功的。。 我这大进程的栈也是够用的,我看了, 而且我gdb -p 进去 call malloc 也是可以申请内存的。。
请大侠们帮忙分析分析啊~~~~~~~~~ |
|