OSDN Git Service

Camera2: Fix deadlock on shutdown due to client getting killed.
authorEino-Ville Talvala <etalvala@google.com>
Tue, 23 Apr 2013 22:16:57 +0000 (15:16 -0700)
committerIgor Murashkin <iam@google.com>
Fri, 26 Apr 2013 18:13:22 +0000 (11:13 -0700)
commitd09801b99503b57c35e321ad9afa7e861e012813
tree62787f87bab856acffb5cb271dd6c2287d001c0b
parentec77122351b4e78c1fe5b60a208f76baf8c67591
Camera2: Fix deadlock on shutdown due to client getting killed.

When the binder connection dies and is the only holder of a strong
pointer to the Camera2Client, disconnect is called from the
destructor. At this point, all weak pointers to Camera2Client are no
longer promotable, and lots of cleanup code paths are broken as a
result.

Rework all such code paths to not need the client pointer, and to
discard image buffers that arrive during shutdown.

Bug: 8696047
Change-Id: Ic0672ecde7c1baaf65079f925a45bd5be45f1fb3
services/camera/libcameraservice/Camera2Client.cpp
services/camera/libcameraservice/Camera2Device.cpp
services/camera/libcameraservice/CameraService.cpp
services/camera/libcameraservice/camera2/CallbackProcessor.cpp
services/camera/libcameraservice/camera2/CallbackProcessor.h
services/camera/libcameraservice/camera2/JpegProcessor.cpp
services/camera/libcameraservice/camera2/JpegProcessor.h
services/camera/libcameraservice/camera2/StreamingProcessor.cpp
services/camera/libcameraservice/camera2/StreamingProcessor.h
services/camera/libcameraservice/camera2/ZslProcessor.cpp
services/camera/libcameraservice/camera2/ZslProcessor.h