OpenComputers

OpenComputers

46M Downloads

Coroutine.wrap does not propagate errors raised in a coroutine

Fingercomp opened this issue · 1 comments

commented

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).

commented

This regressed in commit cdfdb277 . Paging @payonel