Posted to tcl by schelte at Wed Jul 12 15:31:07 GMT 2017view pretty
puts [package require sqlite3] proc bla {data} { after 200 [list [info coroutine]] yield } sqlite3 db :memory: db function bla bla db eval { create table foo ( data text ); create temp trigger insert_foo after insert on foo begin select bla(new.data); end; } coroutine main try { db eval {insert into foo values('something')} } on error {str opts} { puts stderr [dict get $opts -errorinfo] } finally { exit } vwait forever Produces: 3.13.0 cannot yield: C stack busy while executing "yield" (procedure "bla" line 3) invoked from within "bla something" invoked from within "db eval {insert into foo values('something')}" ("try" body line 2)