31 lines
1.1 KiB
Diff
31 lines
1.1 KiB
Diff
From ec3c00ed4c5130fdc8a83b84b587da8457e067f1 Mon Sep 17 00:00:00 2001
|
|
From: Mamoru TASAKA <mtasaka@fedoraproject.org>
|
|
Date: Sun, 22 Mar 2020 16:46:48 +0900
|
|
Subject: [PATCH] main: set the GIOChannel encoding to binary
|
|
|
|
https://developer.gnome.org/glib/stable/glib-IO-Channels.html#g-io-channel-set-encoding
|
|
says the default encoding is UTF-8, and setting encoding to NULL is safe
|
|
use with binary data.
|
|
|
|
Actually without setting encoding to NULL, on Fedora 32, trying to terminate pcmanfm with
|
|
Ctrl-C (SIGINT) causes pcmanfm hang at g_io_channel_read_chars() in on_unix_signal(),
|
|
and this is now causing system reboot delayed for 90 seconds with systemd.
|
|
---
|
|
src/pcmanfm.c | 1 +
|
|
1 file changed, 1 insertion(+)
|
|
|
|
diff --git a/src/pcmanfm.c b/src/pcmanfm.c
|
|
index 9be80f7..c0fe84f 100644
|
|
--- a/src/pcmanfm.c
|
|
+++ b/src/pcmanfm.c
|
|
@@ -239,6 +239,7 @@ int main(int argc, char** argv)
|
|
{
|
|
GIOChannel* ch = g_io_channel_unix_new(signal_pipe[0]);
|
|
g_io_add_watch(ch, G_IO_IN|G_IO_PRI, (GIOFunc)on_unix_signal, NULL);
|
|
+ g_io_channel_set_encoding(ch, NULL, NULL);
|
|
g_io_channel_unref(ch);
|
|
|
|
/* intercept signals */
|
|
--
|
|
2.26.0.rc2
|
|
|