create pthreads as detached instead of joinable #52
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Threads can be created as detached instead of joinable because we don't need to get their return value when they terminate.
Socks5 threads did not put themselves in the list of joinable threads so they were never joined anyway.
Now detached threads put themselves in the list of terminated threads only for monitoring, so that cntlm when receives a sigterm signal can decide to exit or waiting for pending thread ti finish.
The serialize flag ("-s", only used for debugging) was used only for
proxy_thread
but not forsocks5_thread
andtunnel_thread
. Now it is checked on all cases.This PR fixes #49, because
pthread_join()
must not be called on detached threads.Maybe it can be useful for #18 (@jschwartzenberg can you do some tests?) and maybe also for #3.
I tested both proxy and socks5 by executing one thousand concurrent curl requests, and for me it worked flawlessly.