<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in tsan_interceptors_libdispatch.cpp</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>8246b2e1 - [Sanitizers][Darwin] Replace SANITIZER_MAC with SANITIZER_APPLE in source files</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/compiler-rt/lib/tsan/rtl/tsan_interceptors_libdispatch.cpp#8246b2e1</link>
        <description>[Sanitizers][Darwin] Replace SANITIZER_MAC with SANITIZER_APPLE in source filesThis is a follow up to [Sanitizers][Darwin] Rename Apple macro SANITIZER_MAC -&gt; SANITIZER_APPLE (D125816)Performed a global search/replace as in title against LLVM sourcesDifferential Revision: https://reviews.llvm.org/D126263

            List of files:
            /llvm-project-15.0.7/compiler-rt/lib/tsan/rtl/tsan_interceptors_libdispatch.cpp</description>
        <pubDate>Mon, 23 May 2022 21:35:42 +0000</pubDate>
        <dc:creator>Mariusz Borsa &lt;m_borsa@apple.com&gt;</dc:creator>
    </item>
<item>
        <title>4cefa861 - [TSan][libdispatch] Fix compilation error on Linux</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/compiler-rt/lib/tsan/rtl/tsan_interceptors_libdispatch.cpp#4cefa861</link>
        <description>[TSan][libdispatch] Fix compilation error on LinuxThe interceptor for the block variants of the API references thefunction versions (via `REAL(name##_f)`).  On Linux, this accesses theunderlying &quot;real pointer&quot;, defined by the interceptor macro.  So we needto declare interceptors in the right order to avoid undefined symbolcompiler error:```error: no member named &apos;real_dispatch_async_and_wait_f&apos; in namespace &apos;__tsan::__interception&apos;```rdar://68181542

            List of files:
            /llvm-project-15.0.7/compiler-rt/lib/tsan/rtl/tsan_interceptors_libdispatch.cpp</description>
        <pubDate>Wed, 02 Sep 2020 18:20:47 +0000</pubDate>
        <dc:creator>Julian Lettner &lt;julian.lettner@apple.com&gt;</dc:creator>
    </item>
<item>
        <title>c1d25e9a - [TSan][libdispatch] Add interceptors for dispatch_barrier_async_and_wait(), pt. 2</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/compiler-rt/lib/tsan/rtl/tsan_interceptors_libdispatch.cpp#c1d25e9a</link>
        <description>[TSan][libdispatch] Add interceptors for dispatch_barrier_async_and_wait(), pt. 2Also intercept these target functions on Linux.

            List of files:
            /llvm-project-15.0.7/compiler-rt/lib/tsan/rtl/tsan_interceptors_libdispatch.cpp</description>
        <pubDate>Mon, 24 Aug 2020 21:36:18 +0000</pubDate>
        <dc:creator>Julian Lettner &lt;julian.lettner@apple.com&gt;</dc:creator>
    </item>
<item>
        <title>fa0a855c - [TSan][libdispatch] Add interceptors for dispatch_barrier_async_and_wait()</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/compiler-rt/lib/tsan/rtl/tsan_interceptors_libdispatch.cpp#fa0a855c</link>
        <description>[TSan][libdispatch] Add interceptors for dispatch_barrier_async_and_wait()Add interceptors for the barrier variants of the &quot;async and wait&quot;dispatch API family.

            List of files:
            /llvm-project-15.0.7/compiler-rt/lib/tsan/rtl/tsan_interceptors_libdispatch.cpp</description>
        <pubDate>Mon, 24 Aug 2020 20:56:22 +0000</pubDate>
        <dc:creator>Julian Lettner &lt;julian.lettner@apple.com&gt;</dc:creator>
    </item>
<item>
        <title>686fe293 - [TSan][libdispatch] Ensure TSan dylib works on old systems</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/compiler-rt/lib/tsan/rtl/tsan_interceptors_libdispatch.cpp#686fe293</link>
        <description>[TSan][libdispatch] Ensure TSan dylib works on old systems`dispatch_async_and_wait()` was introduced in macOS 10.14, which isgreater than our minimal deployment target.  We need to forward declareit as a &quot;weak import&quot; to ensure we generate a weak reference so the TSandylib continues to work on older systems.  We cannot simply `#include&lt;dispatch.h&gt;` or use the Darwin availability macros since this file ismulti-platform.In addition, we want to prevent building these interceptors at all whenbuilding with older SDKs because linking always fails.Before:```&#10148; dyldinfo -bind ./lib/clang/12.0.0/lib/darwin/libclang_rt.tsan_osx_dynamic.dylib | grep dispatch_async_and_wait__DATA  __interpose      0x000F5E68    pointer      0 libSystem        _dispatch_async_and_wait_f```After:```&#10148; dyldinfo -bind ./lib/clang/12.0.0/lib/darwin/libclang_rt.tsan_osx_dynamic.dylib | grep dispatch_async_and_wait__DATA  __got            0x000EC0A8    pointer      0 libSystem        _dispatch_async_and_wait (weak import)__DATA  __interpose      0x000F5E78    pointer      0 libSystem        _dispatch_async_and_wait (weak import)```This is a follow-up to D85854 and should fix:https://reviews.llvm.org/D85854#2221529Reviewed By: kubamracekDifferential Revision: https://reviews.llvm.org/D86103

            List of files:
            /llvm-project-15.0.7/compiler-rt/lib/tsan/rtl/tsan_interceptors_libdispatch.cpp</description>
        <pubDate>Mon, 17 Aug 2020 19:41:18 +0000</pubDate>
        <dc:creator>Julian Lettner &lt;julian.lettner@apple.com&gt;</dc:creator>
    </item>
<item>
        <title>0c4863a2 - Reland &quot;[TSan][libdispatch] Add interceptors for dispatch_async_and_wait()&quot;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/compiler-rt/lib/tsan/rtl/tsan_interceptors_libdispatch.cpp#0c4863a2</link>
        <description>Reland &quot;[TSan][libdispatch] Add interceptors for dispatch_async_and_wait()&quot;The linker errors caused by this revision have been addressed.Add interceptors for `dispatch_async_and_wait[_f]()` which was added inmacOS 10.14.  This pair of functions is similar to `dispatch_sync()`,but does not force a context switch of the queue onto the caller threadwhen the queue is active (and hence is more efficient).  For TSan, wecan apply the same semantics as for `dispatch_sync()`.From the header docs:&gt; Differences with dispatch_sync()&gt;&gt; When the runtime has brought up a thread to invoke the asynchronous&gt; workitems already submitted to the specified queue, that servicing&gt; thread will also be used to execute synchronous work submitted to the&gt; queue with dispatch_async_and_wait().&gt;&gt; However, if the runtime has not brought up a thread to service the&gt; specified queue (because it has no workitems enqueued, or only&gt; synchronous workitems), then dispatch_async_and_wait() will invoke the&gt; workitem on the calling thread, similar to the behaviour of functions&gt; in the dispatch_sync family.Additional context:&gt; The guidance is to use `dispatch_async_and_wait()` instead of&gt; `dispatch_sync()` when it is necessary to mix async and sync calls on&gt; the same queue. `dispatch_async_and_wait()` does not guarantee&gt; execution on the caller thread which allows to reduce context switches&gt; when the target queue is active.&gt; https://gist.github.com/tclementdev/6af616354912b0347cdf6db159c37057rdar://35757961Reviewed By: kubamracekDifferential Revision: https://reviews.llvm.org/D85854

            List of files:
            /llvm-project-15.0.7/compiler-rt/lib/tsan/rtl/tsan_interceptors_libdispatch.cpp</description>
        <pubDate>Tue, 11 Aug 2020 22:01:20 +0000</pubDate>
        <dc:creator>Julian Lettner &lt;julian.lettner@apple.com&gt;</dc:creator>
    </item>
<item>
        <title>501a078c - Revert &quot;[TSan][libdispatch] Add interceptors for dispatch_async_and_wait()&quot;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/compiler-rt/lib/tsan/rtl/tsan_interceptors_libdispatch.cpp#501a078c</link>
        <description>Revert &quot;[TSan][libdispatch] Add interceptors for dispatch_async_and_wait()&quot;This reverts commit d137db80297f286f3a19eacc63d4a980646da437.Breaks builds on older SDKs.

            List of files:
            /llvm-project-15.0.7/compiler-rt/lib/tsan/rtl/tsan_interceptors_libdispatch.cpp</description>
        <pubDate>Tue, 18 Aug 2020 16:49:05 +0000</pubDate>
        <dc:creator>Arthur Eubanks &lt;aeubanks@google.com&gt;</dc:creator>
    </item>
<item>
        <title>d137db80 - [TSan][libdispatch] Add interceptors for dispatch_async_and_wait()</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/compiler-rt/lib/tsan/rtl/tsan_interceptors_libdispatch.cpp#d137db80</link>
        <description>[TSan][libdispatch] Add interceptors for dispatch_async_and_wait()Add interceptors for `dispatch_async_and_wait[_f]()` which was added inmacOS 10.14.  This pair of functions is similar to `dispatch_sync()`,but does not force a context switch of the queue onto the caller threadwhen the queue is active (and hence is more efficient).  For TSan, wecan apply the same semantics as for `dispatch_sync()`.From the header docs:&gt; Differences with dispatch_sync()&gt;&gt; When the runtime has brought up a thread to invoke the asynchronous&gt; workitems already submitted to the specified queue, that servicing&gt; thread will also be used to execute synchronous work submitted to the&gt; queue with dispatch_async_and_wait().&gt;&gt; However, if the runtime has not brought up a thread to service the&gt; specified queue (because it has no workitems enqueued, or only&gt; synchronous workitems), then dispatch_async_and_wait() will invoke the&gt; workitem on the calling thread, similar to the behaviour of functions&gt; in the dispatch_sync family.Additional context:&gt; The guidance is to use `dispatch_async_and_wait()` instead of&gt; `dispatch_sync()` when it is necessary to mix async and sync calls on&gt; the same queue. `dispatch_async_and_wait()` does not guarantee&gt; execution on the caller thread which allows to reduce context switches&gt; when the target queue is active.&gt; https://gist.github.com/tclementdev/6af616354912b0347cdf6db159c37057rdar://35757961Reviewed By: kubamracekDifferential Revision: https://reviews.llvm.org/D85854

            List of files:
            /llvm-project-15.0.7/compiler-rt/lib/tsan/rtl/tsan_interceptors_libdispatch.cpp</description>
        <pubDate>Tue, 11 Aug 2020 22:01:20 +0000</pubDate>
        <dc:creator>Julian Lettner &lt;julian.lettner@apple.com&gt;</dc:creator>
    </item>
<item>
        <title>def061e6 - [TSan] Rename file with libdispatch interceptors</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/compiler-rt/lib/tsan/rtl/tsan_interceptors_libdispatch.cpp#def061e6</link>
        <description>[TSan] Rename file with libdispatch interceptorsllvm-svn: 369314

            List of files:
            /llvm-project-15.0.7/compiler-rt/lib/tsan/rtl/tsan_interceptors_libdispatch.cpp</description>
        <pubDate>Tue, 20 Aug 2019 00:04:19 +0000</pubDate>
        <dc:creator>Julian Lettner &lt;jlettner@apple.com&gt;</dc:creator>
    </item>
</channel>
</rss>
