mirror of
https://github.com/MightyPirates/OpenComputers.git
synced 2025-09-17 11:15:12 -04:00
Merge pull request #1264 from payonel/patch-1
Fix coroutine resume in piped programs by forcing write on close.
This commit is contained in:
commit
26a7939584
@ -13,6 +13,9 @@ local unicode = require("unicode")
|
|||||||
local memoryStream = {}
|
local memoryStream = {}
|
||||||
|
|
||||||
function memoryStream:close()
|
function memoryStream:close()
|
||||||
|
if (self.empty) then
|
||||||
|
self:write('')
|
||||||
|
end
|
||||||
self.closed = true
|
self.closed = true
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -37,6 +40,7 @@ function memoryStream:read(n)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function memoryStream:write(value)
|
function memoryStream:write(value)
|
||||||
|
self.empty = false
|
||||||
if not self.redirect.write and self.closed then
|
if not self.redirect.write and self.closed then
|
||||||
error("attempt to use a closed stream")
|
error("attempt to use a closed stream")
|
||||||
end
|
end
|
||||||
@ -59,7 +63,7 @@ end
|
|||||||
|
|
||||||
function memoryStream.new()
|
function memoryStream.new()
|
||||||
local stream = {closed = false, buffer = "",
|
local stream = {closed = false, buffer = "",
|
||||||
redirect = {}, result = {}, args = {}}
|
redirect = {}, result = {}, args = {}, empty = true}
|
||||||
local metatable = {__index = memoryStream,
|
local metatable = {__index = memoryStream,
|
||||||
__gc = memoryStream.close,
|
__gc = memoryStream.close,
|
||||||
__metatable = "memorystream"}
|
__metatable = "memorystream"}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user