void-packages/srcpkgs/wofi/patches/fix-mode-thread.patch
Đoàn Trần Công Danh 04b9978a29 srcpkgs/w*: convert patches to -Np1
* wine is kept at -Np0

```sh
git grep -l '^patch_args=-Np0' "srcpkgs/$1*/template" |
while read template; do
	for p in ${template%/template}/patches/*; do
		sed -i '
			\,^[+-][+-][+-] /dev/null,b
			/^[*-]\+ [0-9]\+\(,[0-9]\+\)\? [*-]\+$/b
			s,^[*][*][*] ,&a/,
			/^--- /{
				s,\(^--- \)\(./\)*,\1a/,
				s,[.-][Oo][Rr][Ii][Gg]\([	/]\),\1,
				s/[.-][Oo][Rr][Ii][Gg]$//
				s/[.]patched[.]\([^.]\)/.\1/
				h
			}
			/^+++ -/{
				g
				s/^--- a/+++ b/
				b
			}
			s,\(^+++ \)\(./\)*,\1b/,
		' "$p"
	done
	sed -i '/^patch_args=/d' $template
done
```
2021-06-20 13:17:29 +07:00

30 lines
807 B
Diff

# HG changeset patch
# User Scoopta <scoopta@scoopta.email>
# Date 1601697276 25200
# Fri Oct 02 20:54:36 2020 -0700
# Node ID 8a4a5e29ca9c1fb0a11ed9b329d275f5c02154a6
# Parent ac8dc17ab751b13b6d4ddcc1a1467e4beb8d7d26
The mode thread will not be joined multiple times as this causes segfaults under musl
--- a/src/wofi.c
+++ b/src/wofi.c
@@ -103,6 +103,7 @@
static bool dynamic_lines;
static struct wl_list mode_list;
static pthread_t mode_thread;
+static bool has_joined_mode = false;
static struct map* keys;
@@ -596,7 +597,10 @@
}
static gboolean insert_all_widgets(gpointer data) {
- pthread_join(mode_thread, NULL);
+ if(!has_joined_mode) {
+ pthread_join(mode_thread, NULL);
+ has_joined_mode = true;
+ }
struct wl_list* modes = data;
if(modes->prev == modes) {
return FALSE;