diff options
author | Kazuhiro Ondo <kazuhiro.ondo@motorola.com> | 2011-10-14 17:50:58 -0500 |
---|---|---|
committer | John Huang <jsh@google.com> | 2011-10-18 16:59:27 -0700 |
commit | 5cdc1354de1e1b98347fe67c5fefdb0be7e0f589 (patch) | |
tree | b4d7c61acc42ac3a7f2962f8dcca1cd6b4689892 /libril | |
parent | fa8d584ca7984bf7d73ff37c7c2bc1e0dfa5fb71 (diff) | |
download | android_hardware_ril-5cdc1354de1e1b98347fe67c5fefdb0be7e0f589.tar.gz android_hardware_ril-5cdc1354de1e1b98347fe67c5fefdb0be7e0f589.tar.bz2 android_hardware_ril-5cdc1354de1e1b98347fe67c5fefdb0be7e0f589.zip |
RIL occasionally stopps event loop on phone process crash
RIL occasionally exits from its event loop due to race condition
upon phone process crash. And there is no recovery mechanism
provided and causing permanent cellular data loss until reset.
The solution is simply to kill rild process to start over when
event loop exits for some reason.
Bug:5428218
Change-Id: I88a9b8e966158f0f943fe3d189d91b1352481d9b
Diffstat (limited to 'libril')
-rw-r--r-- | libril/ril.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/libril/ril.cpp b/libril/ril.cpp index dec5507..7998356 100644 --- a/libril/ril.cpp +++ b/libril/ril.cpp @@ -2609,6 +2609,8 @@ eventLoop(void *param) { // Only returns on error ril_event_loop(); LOGE ("error in event_loop_base errno:%d", errno); + // kill self to restart on error + kill(0, SIGKILL); return NULL; } |