lightrec: fix race that could cause a freeze during load/reset
authorZachary Cook <zachcook1991@gmail.com>
Mon, 8 Jun 2020 01:29:45 +0000 (21:29 -0400)
committerZachary Cook <zachcook1991@gmail.com>
Mon, 8 Jun 2020 01:30:12 +0000 (21:30 -0400)
Issue #387

git subrepo commit (merge) deps/lightrec

subrepo:
  subdir:   "deps/lightrec"
  merged:   "a3a7bf4"
upstream:
  origin:   "https://github.com/pcercuei/lightrec.git"
  branch:   "master"
  commit:   "2cca097"
git-subrepo:
  version:  "0.4.1"
  origin:   "https://github.com/ingydotnet/git-subrepo"
  commit:   "a04d8c2"

deps/lightrec/.gitrepo
deps/lightrec/recompiler.c

index 0dbefe8..4ebb7d2 100644 (file)
@@ -6,7 +6,7 @@
 [subrepo]
        remote = https://github.com/pcercuei/lightrec.git
        branch = master
-       commit = 2081869a00371dac285836fb950f8cd0c26b55b9
+       commit = 2cca097e538876d219b8af9663abe0ca74f68bb2
        parent = 5c00ea32a0eab812299b08acd14c25bf6ba4ca7a
        method = merge
        cmdver = 0.4.1
index e60889c..634d3d0 100644 (file)
@@ -76,7 +76,7 @@ static void * lightrec_recompiler_thd(void *d)
 
        pthread_mutex_lock(&rec->mutex);
 
-       do {
+       while (!rec->stop) {
                do {
                        pthread_cond_wait(&rec->cond, &rec->mutex);
 
@@ -86,7 +86,7 @@ static void * lightrec_recompiler_thd(void *d)
                } while (slist_empty(&rec->slist));
 
                lightrec_compile_list(rec);
-       } while (!rec->stop);
+       }
 
 out_unlock:
        pthread_mutex_unlock(&rec->mutex);