← Back to team overview

maria-developers team mailing list archive

Re: c45b4a7: MDEV-17200 - pthread_detach called for already detached threads

 

Hi, Sergey!

ok to push!

On Sep 21, Sergey Vojtovich wrote:
> revision-id: c45b4a774b6d1404a080a1c1759f780fa78f223b (mariadb-10.1.35-65-gc45b4a7)
> parent(s): 82524239c48a2603f115a6117e061751f6427d08
> author: Sergey Vojtovich
> committer: Sergey Vojtovich
> timestamp: 2018-09-21 16:24:23 +0400
> message:
> 
> MDEV-17200 - pthread_detach called for already detached threads
> 
> pthread_detach_this_thread() was intended to be defined to something
> meaningful only on some ancient unixes, which don't have
> pthread_attr_setdetachstate() defined. Otherwise, on normal unixes,
> threads are created detached in the first place.
> 
> This was broken in 0f01bf267680244ec488adaf65a42838756ed48e so that
> we started calling pthread_detach() for already detached threads.
> Intention was to detach aria checkpoint thread.
> 
> However in 87007dc2f71634cc460271eb277ad851ec69c04b aria service threads
> were made joinable with appropriate handling, which makes breaking
> revision unneccessary.
> 
> Revert remnants of 0f01bf267680244ec488adaf65a42838756ed48e, so that
> pthread_detach_this_thread() is meaningful only on some ancient unixes
> again.
> 
> ---
>  include/my_pthread.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/include/my_pthread.h b/include/my_pthread.h
> index 6b830ca..ae2f912 100644
> --- a/include/my_pthread.h
> +++ b/include/my_pthread.h
> @@ -184,7 +184,7 @@ int pthread_cancel(pthread_t thread);
>  #define pthread_key(T,V) pthread_key_t V
>  #define my_pthread_getspecific_ptr(T,V) my_pthread_getspecific(T,(V))
>  #define my_pthread_setspecific_ptr(T,V) pthread_setspecific(T,(void*) (V))
> -#define pthread_detach_this_thread() { pthread_t tmp=pthread_self() ; pthread_detach(tmp); }
> +#define pthread_detach_this_thread()
>  #define pthread_handler_t EXTERNC void *
>  typedef void *(* pthread_handler)(void *);
>  
Regards,
Sergei
Chief Architect MariaDB
and security@xxxxxxxxxxx