ref: ce40d0186da04b7cfce7ba21edb6a3b33cd5c198
parent: c2f958658791d170d6864525749bf437241790e1
author: Ori Bernstein <ori@eigenstate.org>
date: Mon Jun 11 08:58:44 EDT 2018
Return an error from pledge. Debatable if it should abort the program instead, but...
--- a/lib/std/pledge+openbsd.myr
+++ b/lib/std/pledge+openbsd.myr
@@ -1,9 +1,18 @@
use sys
+use "errno"
+use "result"
pkg std =
- const pledge : (promise : byte[:], epromise : byte[:] -> void)
+ const pledge : (promise : byte[:], epromise : byte[:] -> result(void, errno))
;;
const pledge = {promise, epromise
- sys.pledge(sys.cstring(promise), sys.cstring(epromise))
+ var r
+
+ r = sys.pledge(sys.cstring(promise), sys.cstring(epromise))
+ if r < 0
+ -> `std.Err (r : errno)
+ else
+ -> `std.Ok void
+ ;;
}
--- a/lib/std/pledge.myr
+++ b/lib/std/pledge.myr
@@ -1,4 +1,6 @@
use sys
+use "errno"
+use "result"
pkg std =
const pledge : (promise : byte[:], epromise : byte[:] -> void)