[libvirt] [PATCH 02/12] Add API for thread cancellation

Michal Privoznik mprivozn at redhat.com
Wed May 2 15:22:53 UTC 2012


On 02.05.2012 13:44, Daniel P. Berrange wrote:
> From: "Daniel P. Berrange" <berrange at redhat.com>
> 
> * src/util/threads-pthread.c, src/util/threads.h: Add virThreadCancel
> ---
>  src/util/threads-pthread.c |    5 +++++
>  src/util/threads.h         |    1 +
>  2 files changed, 6 insertions(+)
> 
> diff --git a/src/util/threads-pthread.c b/src/util/threads-pthread.c
> index ea64887..cfd0b24 100644
> --- a/src/util/threads-pthread.c
> +++ b/src/util/threads-pthread.c
> @@ -236,6 +236,11 @@ void virThreadJoin(virThreadPtr thread)
>      pthread_join(thread->thread, NULL);
>  }
>  
> +void virThreadCancel(virThreadPtr thread)
> +{
> +    pthread_cancel(thread->thread);
> +}
> +
>  int virThreadLocalInit(virThreadLocalPtr l,
>                         virThreadLocalCleanup c)
>  {
> diff --git a/src/util/threads.h b/src/util/threads.h
> index e5000ea..9c1ef99 100644
> --- a/src/util/threads.h
> +++ b/src/util/threads.h
> @@ -53,6 +53,7 @@ int virThreadCreate(virThreadPtr thread,
>  void virThreadSelf(virThreadPtr thread);
>  bool virThreadIsSelf(virThreadPtr thread);
>  void virThreadJoin(virThreadPtr thread);
> +void virThreadCancel(virThreadPtr thread);
>  
>  /* These next two functions are for debugging only, since they are not
>   * guaranteed to give unique values for distinct threads on all

Okay, if we are brave enough. Although, win32 implementation is missing.

Michal




More information about the libvir-list mailing list