<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/139157>139157</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [clang-tidy] Check request: cppcoreguidelines-avoid-calling-unknown-under-lock
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang-tidy
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          denzor200
      </td>
    </tr>
</table>

<pre>
    Needs a check that will implement [CP.22](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#cp22-never-call-unknown-code-while-holding-a-lock-eg-a-callback) from the C++ Core Guidelines.

```
std::mutex my_mutex;

template<typename Action>
void do_something(Action f)
{
 std::unique_lock<std::mutex> lck {my_mutex};
    // ... do something ...
 f(this);    // WARNING
    // ...
}
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJxsk0FvqzgUhX_NZWOBjF1CWLAA0lSzqUazmWVl7BvwxNgUm3Tyfv2TSV7a6j3JEpa595zjy4fwXg8WsYaiheKQiDWMbqkV2h9uYZQmvVPX-hVReSKIHFGeSRhFIB_aGKKn2eCENhAo2u7vjDEoDsD2YwizB94AOwI7au_kPGeDDuPaZ9oBO3bz3LkFX1at0GiL_s9nXM6MpRYvuKRSGJOu9mzdh02lU5h-jNpgOjqjtB1SkRonzynGXazthTwDq8hpcRMJI5IOWAusJdGEfLpkQJu4dvS-aOODiuF5M60B_yfT9W3bAG9vtQGn2YiAwLtwndGKCUkjg3YW-DPQ5uK0Isq9eTdhGLUdgO1v78kJWBVFyihFHkar1e8rvsUbAO---wN_JkaeCZTtI0l5uIUhhJDbkEmWZUQ58vCMB7HiBGwfRu2jMW-_NPzb_PP61-vLbypbvMPXkSSq5qrilUiwzsunXckrWtBkrOVO9mWl9ozRSihW5uU-r6pqVxXsROmJJrpmlBW0oHuW5yWnGcvzouS5LHm5xx3v4YniJLTJjLlMmVuGRHu_Yp3zKi_KxIgejd_gZEwaYYc0aHWFDbRkqWNX2q-DhydqtA_-UyfoYDasv7QVB9JtCC_4vqIPwBsi51m6BYcHEKmI329jKHL1C7nVKlw2xpJ1MfV3xO9sSzcBO8YI90c6L-4_lGH7C_y6cX6_2qVmPwMAAP__fboV6A">