mirror of
https://github.com/3proxy/3proxy.git
synced 2025-02-23 10:35:40 +08:00
Correct error handling for thread creation
Error handling corrected for thread creation in case of e.g. insufficient system resources.
This commit is contained in:
parent
bf04b9465b
commit
17665e1f8e
@ -460,22 +460,26 @@ int MODULEMAINFUNC (int argc, char** argv){
|
||||
#else
|
||||
h = (HANDLE)CreateThread((LPSECURITY_ATTRIBUTES )NULL, (unsigned)32768, (BEGINTHREADFUNC)srv.pf, (void *) newparam, 0, &thread);
|
||||
#endif
|
||||
newparam->threadid = (unsigned)thread;
|
||||
srv.childcount++;
|
||||
if (h) {
|
||||
srv.childcount++;
|
||||
newparam->threadid = (unsigned)thread;
|
||||
CloseHandle(h);
|
||||
}
|
||||
else {
|
||||
myfree(newparam);
|
||||
sprintf((char *)buf, "_beginthreadex(): %s", _strerror(NULL));
|
||||
if(!srv.silent)(*srv.logfunc)(&defparam, buf);
|
||||
freeparam(newparam);
|
||||
}
|
||||
#else
|
||||
if((error = pthread_create(&thread, &pa, (PTHREADFUNC)srv.pf, (void *)newparam))){
|
||||
|
||||
error = pthread_create(&thread, &pa, (PTHREADFUNC)srv.pf, (void *)newparam);
|
||||
srv.childcount++;
|
||||
if(error){
|
||||
sprintf((char *)buf, "pthread_create(): %s", strerror(error));
|
||||
if(!srv.silent)(*srv.logfunc)(&defparam, buf);
|
||||
freeparam(newparam);
|
||||
}
|
||||
else {
|
||||
srv.childcount++;
|
||||
newparam->threadid = (unsigned)thread;
|
||||
}
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user