MightyPirates / OpenComputers

Home of the OpenComputers mod for Minecraft.

Home Page:https://oc.cil.li

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Coroutine.wrap does not propagate errors raised in a coroutine

Fingercomp opened this issue · comments

The following code should raise an error in the main thread, propagating one thrown by the coroutine body:

print(coroutine.wrap(function()
  error("test")
end)())

print("should be unreachable")

In native Lua and in the BIOS environment none of the print calls are reachable. In OpenOS, however, the wrapper intercepts the error and returns the error object; the code above thus prints the following:

/home/test.lua:2: test
should be unreachable

OC 1.8.3. I think this may be a regression in one of the newer OC versions — I certainly remember coroutine.wrap working as expected a while ago (1.7-ish).

This regressed in commit cdfdb277 . Paging @payonel