aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/patches/guile-fibers-libevent-32-bit.patch
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/patches/guile-fibers-libevent-32-bit.patch')
-rw-r--r--gnu/packages/patches/guile-fibers-libevent-32-bit.patch18
1 files changed, 18 insertions, 0 deletions
diff --git a/gnu/packages/patches/guile-fibers-libevent-32-bit.patch b/gnu/packages/patches/guile-fibers-libevent-32-bit.patch
new file mode 100644
index 0000000000..a1cc99fdbe
--- /dev/null
+++ b/gnu/packages/patches/guile-fibers-libevent-32-bit.patch
@@ -0,0 +1,18 @@
+This fixes a bug with the libevent backend on 32-bit platforms:
+
+ https://github.com/wingo/fibers/issues/86
+
+diff --git a/extensions/libevent.c b/extensions/libevent.c
+index 4f44de9..52c9d73 100644
+--- a/extensions/libevent.c
++++ b/extensions/libevent.c
+@@ -215,7 +215,8 @@ run_event_loop (void *p)
+ microsec = -1;
+ else if (data->timeout >= 0)
+ {
+- microsec = data->timeout / time_units_per_microsec;
++ microsec = (time_units_per_microsec == 0)
++ ? 0 : data->timeout / time_units_per_microsec;
+ tv.tv_sec = 0;
+ tv.tv_usec = microsec;
+ }