Нужно ли рассматривать сценарий ниже как критический? - PullRequest
1 голос
/ 27 мая 2019

У меня есть Android-сервис Java, который будет взаимодействовать с сервисом HAL с помощью HIDL вызовов.

У меня есть сценарий ниже, я не уверен, что к нему относятся как к критическому.

+----------+  (AIDL) +--------------+
|App thread|-------->|Java Service  | (HIDL) +-----------+
+----------+         |(SendFunction)|------->|CPP service|  
                     +--------------+        +-----------+
                     ^
+--------------+     |
|AnotherThread |-----|
+--------------+

Определение SendFunction такое, как показано ниже.

 private void SendFunction(int status, DiagCommandDesc response) {
      try {
          server.executeCommandResponse(status, response);
         if (Log.isLoggable(TAG, Log.DEBUG)) {
              Log.d(TAG, "Response sent to HAL.");
          }
      } catch (Exception e) {
          if (Log.isLoggable(TAG, Log.DEBUG)) {
             Log.d(TAG, "HAL Server error.");
         }
      }
  } 

SendFunction вызывается из двух разных потоков. Где server является экземпляром для CPP Server с использованием HIDL.

МОЙ вопрос.

      server.executeCommandResponse(status, response);

Нужно ли рассматривать выше call как критическое и синхронизировать его? как server объект будет доступен из двух разных потоков.

...