From e34c35abcf323aac4d6a90f3f195cd93ea195171 Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Fri, 8 Nov 2013 16:23:16 -0200 Subject: [PATCH] new bug: Resuming the running coroutine makes it unyieldable --- bugs | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/bugs b/bugs index 3d021ea2..d5f6ae41 100644 --- a/bugs +++ b/bugs @@ -1880,8 +1880,8 @@ patch = [[ +++ lundump.c 2008/04/04 19:51:41 2.7.1.4 @@ -1,5 +1,5 @@ /* --** $Id: bugs,v 1.127 2013/09/03 15:37:10 roberto Exp roberto $ -+** $Id: bugs,v 1.127 2013/09/03 15:37:10 roberto Exp roberto $ +-** $Id: bugs,v 1.128 2013/11/08 17:45:10 roberto Exp roberto $ ++** $Id: bugs,v 1.128 2013/11/08 17:45:10 roberto Exp roberto $ ** load precompiled Lua chunks ** See Copyright Notice in lua.h */ @@ -3175,6 +3175,36 @@ patch = [[ ]=]=] +--[=[ +Bug{ +what = [[Resuming the running coroutine makes it unyieldable]], +report = [[Florian Nücke, 2013/10/28]], +since = [[5.2]], +fix = nil, +example = [[ +-- should print 'true' +print(coroutine.resume(coroutine.create(function() + coroutine.resume(coroutine.running()) + coroutine.yield() +end))) +]], +patch = [[ +--- ldo.c 2013/04/19 21:03:23 2.108.1.2 ++++ ldo.c 2013/11/08 18:20:57 +@@ -536,2 +536,3 @@ + int status; ++ int oldnny = L->nny; /* save 'nny' */ + lua_lock(L); +@@ -557,3 +558,3 @@ + } +- L->nny = 1; /* do not allow yields */ ++ L->nny = oldnny; /* restore 'nny' */ + L->nCcalls--; +]] +} +]=] + + --[=[ Bug{ what = [[ ]],