<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">