On 3/1/25 2:56 PM, Frank Wagner wrote:
> On Windows to current definitions of thread_local are not working.
> 
> Signed-off-by: Frank Wagner <frank.wag...@dbosoft.eu>
> 
> ---

Hi Frank,

Thanks for the patch!

>  northd/lflow-mgr.c | 2 ++
>  northd/northd.c    | 2 ++
>  northd/northd.h    | 4 ++++
>  3 files changed, 8 insertions(+)
> 
> diff --git a/northd/lflow-mgr.c b/northd/lflow-mgr.c
> index 88ce7ce56..d29d5e7b4 100644
> --- a/northd/lflow-mgr.c
> +++ b/northd/lflow-mgr.c
> @@ -98,7 +98,9 @@ static bool sync_lflow_to_sb(struct ovn_lflow *,
>  /* TODO:  Move the parallization logic to this module to avoid accessing
>   * and modifying in both northd.c and lflow-mgr.c. */
>  extern int parallelization_state;
> +#ifndef _WIN32
>  extern thread_local size_t thread_lflow_counter;
> +#endif
>  
>  struct dp_refcnt;
>  static struct dp_refcnt *dp_refcnt_find(struct hmap *dp_refcnts_map,
> diff --git a/northd/northd.c b/northd/northd.c
> index a1fcc64a5..a378fbea5 100644
> --- a/northd/northd.c
> +++ b/northd/northd.c
> @@ -5476,7 +5476,9 @@ int parallelization_state = STATE_NULL;
>   * threads are collected to fix the lflow hmap's size (by the function
>   * fix_flow_map_size()).
>   * */
> +#ifndef _WIN32
>  thread_local size_t thread_lflow_counter = 0;
> +#endif
>  
>  static bool
>  build_dhcpv4_action(struct ovn_port *op, ovs_be32 offer_ip,
> diff --git a/northd/northd.h b/northd/northd.h
> index 1fbc93c8e..190503753 100644
> --- a/northd/northd.h
> +++ b/northd/northd.h
> @@ -250,7 +250,11 @@ enum {
>      STATE_USE_PARALLELIZATION /* parallelization is on */
>  };
>  
> +#ifdef _WIN32
> +static __declspec(thread) size_t thread_lflow_counter = 0;
> +#else
>  extern thread_local size_t thread_lflow_counter;
> +#endif

Shouldn't this go to OVS's include/openvswitch/compiler.h instead?
Maybe define an OVS_THREAD_LOCAL() or something here:

https://github.com/openvswitch/ovs/blob/main/include/openvswitch/compiler.h

Ilya, Alin, what do you think?

>  
>  /*
>   * Multicast snooping and querier per datapath configuration.

Thanks,
Dumitru

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to