aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/error.h
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2024-10-19 21:32:04 +0300
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2024-10-19 21:32:04 +0300
commit3b3bc070f802491e98f87d9191e7d33fec78dd5a (patch)
tree6272d10949276351e442b5a7ded304b89bf2b75b /src/error.h
parent62b124e77493e32fe7f516bcb7dfbd454f353499 (diff)
downloadsciteco-3b3bc070f802491e98f87d9191e7d33fec78dd5a.tar.gz
<EC>: perhaps fixed race conditions and problems when creating and terminating process groups on Win32
* Sometimes already the job assignment failed in CI builds. We now check whether the process is still alive before throwing an error. * We now set the JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE flag. This theoretically shouldn't be necessary when using TerminateJobObject(), but who knows.
Diffstat (limited to 'src/error.h')
-rw-r--r--src/error.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/error.h b/src/error.h
index 469d957..5ffd434 100644
--- a/src/error.h
+++ b/src/error.h
@@ -50,6 +50,7 @@ typedef enum {
TECO_ERROR_EDITINGLOCALQREG,
TECO_ERROR_MEMLIMIT,
TECO_ERROR_CLIPBOARD,
+ TECO_ERROR_WIN32,
/** Interrupt current operation */
TECO_ERROR_INTERRUPTED,
@@ -138,6 +139,15 @@ teco_error_editinglocalqreg_set(GError **error, const gchar *name, gsize len)
"Editing local Q-Register \"%s\" at end of macro call", name_printable);
}
+#ifdef G_OS_WIN32
+static inline void
+teco_error_win32_set(GError **error, const gchar *prefix, gint err)
+{
+ g_autofree gchar *msg = g_win32_error_message(err);
+ g_set_error(error, TECO_ERROR, TECO_ERROR_WIN32, "%s: %s", prefix, msg);
+}
+#endif
+
static inline void
teco_error_interrupted_set(GError **error)
{