Fix crash on boot

There is a race condition where the sysfs-vsync thread accesses a value
(in particular a function ptr) that may not have been set yet as this
is done externally.

Change-Id: If1afb1533344e994398b9b6f5bd3dfb125313416
tirimbino
Flamefire 11 years ago
parent e1b1ffd5fc
commit 5d0cdb761c
  1. 3
      exynos4/hal/libhwcomposer/SecHWC.cpp

@ -965,7 +965,8 @@ static void *hwc_vsync_sysfs_loop(void *data)
do { do {
ssize_t len = read(vsync_timestamp_fd, buf, sizeof(buf)); ssize_t len = read(vsync_timestamp_fd, buf, sizeof(buf));
timestamp = strtoull(buf, NULL, 0); timestamp = strtoull(buf, NULL, 0);
ctx->procs->vsync(ctx->procs, 0, timestamp); if(ctx->procs)
ctx->procs->vsync(ctx->procs, 0, timestamp);
select(vsync_timestamp_fd + 1, NULL, NULL, &exceptfds, NULL); select(vsync_timestamp_fd + 1, NULL, NULL, &exceptfds, NULL);
lseek(vsync_timestamp_fd, 0, SEEK_SET); lseek(vsync_timestamp_fd, 0, SEEK_SET);
} while (1); } while (1);

Loading…
Cancel
Save