<div dir="ltr"><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div dir="ltr"><div style="font-size:12.8px"><div style="color:rgb(136,136,136);font-size:12.8px"><div style="font-size:small"><span style="color:rgb(34,34,34)">> How come this gets inserted here by git when the commit author and the</span><br style="color:rgb(34,34,34)"><span style="color:rgb(34,34,34)">sender have the same identity ?</span><font face="arial, helvetica, sans-serif" color="#000000"><br></font></div><div style="font-size:small"><span style="color:rgb(34,34,34)"><br></span></div><div style="font-size:small"><span style="color:rgb(34,34,34)">I'm really not sure. Maybe because I specify "--from" in git-send-email? Is this not a standard thing to do?</span></div></div></div></div></div></div></div>git send-email --compose --from=<a href="mailto:nicholas@rothemail.net">nicholas@rothemail.net</a> --reply-to=<a href="mailto:libcamera-devel@lists.libcamera.org">libcamera-devel@lists.libcamera.org</a> --to=<a href="mailto:libcamera-devel@lists.libcamera.org">libcamera-devel@lists.libcamera.org</a> --subject="libcamera Android Enhancements" --thread --no-chain-reply-to --annotate -v2 main<br><div><br></div><div>> nit: double empty line</div><div>If you're referring to the commit message, the line below the error is for the carat that Clang uses to indicate the position of the error. Happy to not skip a line before "Signed-off-by" if it would help.</div><div><br></div><div>> this seems correct to me, even more so if it silences a compilation error.</div><div>Do I need an LGTM from anyone else? What would the next step be here?</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Oct 27, 2022 at 11:08 AM Jacopo Mondi <<a href="mailto:jacopo@jmondi.org">jacopo@jmondi.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Nicholas<br>
<br>
On Thu, Oct 27, 2022 at 12:55:07AM -0500, Nicholas Roth via libcamera-devel wrote:<br>
> From: Nicholas Roth <<a href="mailto:nicholas@rothemail.net" target="_blank">nicholas@rothemail.net</a>><br>
<br>
How come this gets inserted here by git when the commit author and the<br>
sender have the same identity ?<br>
<br>
><br>
> The raspberrypi IPA is missing thread-safety annotations, which breaks<br>
> the build.<br>
><br>
> Add required thread-safety annotations.<br>
><br>
> ../src/ipa/raspberrypi/controller/metadata.h:108:31: error: mutex<br>
>   'mutex_' is still held at the end of function [-Werror,-Wthread-safety-analysis]<br>
>         void lock() { mutex_.lock(); }<br>
>                                      ^<br>
> ../src/ipa/raspberrypi/controller/metadata.h:108:23: note: mutex<br>
>   acquired here<br>
>         void lock() { mutex_.lock(); }<br>
>                              ^<br>
> ../src/ipa/raspberrypi/controller/metadata.h:109:25: error: releasing<br>
>   mutex 'mutex_' that was not held [-Werror,-Wthread-safety-analysis]<br>
>         void unlock() { mutex_.unlock(); }<br>
>                                ^<br>
<br>
nit: double empty line<br>
<br>
><br>
> Signed-off-by: Nicholas Roth <<a href="mailto:nicholas@rothemail.net" target="_blank">nicholas@rothemail.net</a>><br>
<br>
I've not followed much the thread annotation thing, but this seems<br>
correct to me, even more so if it silences a compilation error.<br>
<br>
Reviewed-by: Jacopo Mondi <<a href="mailto:jacopo@jmondi.org" target="_blank">jacopo@jmondi.org</a>><br>
<br>
> ---<br>
>  src/ipa/raspberrypi/controller/metadata.h | 8 +++++---<br>
>  1 file changed, 5 insertions(+), 3 deletions(-)<br>
><br>
> diff --git a/src/ipa/raspberrypi/controller/metadata.h b/src/ipa/raspberrypi/controller/metadata.h<br>
> index 0f7ebfaf..870b6e26 100644<br>
> --- a/src/ipa/raspberrypi/controller/metadata.h<br>
> +++ b/src/ipa/raspberrypi/controller/metadata.h<br>
> @@ -13,9 +13,11 @@<br>
>  #include <mutex><br>
>  #include <string><br>
><br>
> +#include <libcamera/base/thread_annotations.h><br>
> +<br>
>  namespace RPiController {<br>
><br>
> -class Metadata<br>
> +class LIBCAMERA_TSA_CAPABILITY("mutex") Metadata<br>
>  {<br>
>  public:<br>
>       Metadata() = default;<br>
> @@ -103,8 +105,8 @@ public:<br>
>        * locks with the standard lock classes.<br>
>        * e.g. std::lock_guard<RPiController::Metadata> lock(metadata)<br>
>        */<br>
> -     void lock() { mutex_.lock(); }<br>
> -     void unlock() { mutex_.unlock(); }<br>
> +     void lock() LIBCAMERA_TSA_ACQUIRE() { mutex_.lock(); }<br>
> +     void unlock() LIBCAMERA_TSA_RELEASE() { mutex_.unlock(); }<br>
><br>
>  private:<br>
>       mutable std::mutex mutex_;<br>
> --<br>
> 2.34.1<br>
><br>
</blockquote></div>