[Mesa-dev] [PATCH v2] swr/rast: quit using linux-specific gettid()
Cherniak, Bruce
bruce.cherniak at intel.com
Fri Jul 21 20:20:41 UTC 2017
Reviewed-by: Bruce Cherniak <bruce.cherniak at intel.com>
> On Jul 21, 2017, at 2:17 PM, Tim Rowley <timothy.o.rowley at intel.com> wrote:
>
> Linux-specific gettid() syscall shouldn't be used in portable code.
> Fix does assume a 1:1 thread:LWP architecture, but works for our
> current target platforms and can be revisited later if needed.
>
> Fixes unresolved symbol in linux scons builds.
>
> v2: add comment in code about the 1:1 assumption.
>
> Cc: mesa-stable at lists.freedesktop.org
> Cc: Emil Velikov <emil.velikov at collabora.com>
> ---
> .../swr/rasterizer/codegen/templates/gen_ar_eventhandlerfile.hpp | 5 +++--
> src/gallium/drivers/swr/rasterizer/common/os.h | 2 --
> 2 files changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/src/gallium/drivers/swr/rasterizer/codegen/templates/gen_ar_eventhandlerfile.hpp b/src/gallium/drivers/swr/rasterizer/codegen/templates/gen_ar_eventhandlerfile.hpp
> index 3a618a1..9017e8d 100644
> --- a/src/gallium/drivers/swr/rasterizer/codegen/templates/gen_ar_eventhandlerfile.hpp
> +++ b/src/gallium/drivers/swr/rasterizer/codegen/templates/gen_ar_eventhandlerfile.hpp
> @@ -67,8 +67,9 @@ namespace ArchRast
> char buf[255];
> // There could be multiple threads creating thread pools. We
> // want to make sure they are uniquly identified by adding in
> - // the creator's thread id into the filename.
> - sprintf(buf, "%s/ar_event%d_%d.bin", "/tmp", GetCurrentThreadId(), id);
> + // the creator's thread (process) id into the filename.
> + // Assumes a 1:1 thread:LWP mapping as in linux.
> + sprintf(buf, "%s/ar_event%d_%d.bin", "/tmp", GetCurrentProcessId(), id);
> mFilename = std::string(buf);
> #endif
> }
> diff --git a/src/gallium/drivers/swr/rasterizer/common/os.h b/src/gallium/drivers/swr/rasterizer/common/os.h
> index a16f577..dc90fca 100644
> --- a/src/gallium/drivers/swr/rasterizer/common/os.h
> +++ b/src/gallium/drivers/swr/rasterizer/common/os.h
> @@ -237,8 +237,6 @@ void AlignedFree(void* p)
> #define sprintf_s sprintf
> #define strcpy_s(dst,size,src) strncpy(dst,src,size)
> #define GetCurrentProcessId getpid
> -pid_t gettid(void);
> -#define GetCurrentThreadId gettid
>
> #define InterlockedCompareExchange(Dest, Exchange, Comparand) __sync_val_compare_and_swap(Dest, Comparand, Exchange)
> #define InterlockedExchangeAdd(Addend, Value) __sync_fetch_and_add(Addend, Value)
> --
> 2.7.4
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list