example: initialize loaded module in a new thread

Change-Id: Id44cc1dc3f6112764080b2dcef358dfd25fbdbcd
diff --git a/example_test.go b/example_test.go
index 7ab6c43..1be9a6d 100644
--- a/example_test.go
+++ b/example_test.go
@@ -74,7 +74,8 @@
 
 	cache := make(map[string]*entry)
 
-	load := func(thread *skylark.Thread, module string) (skylark.StringDict, error) {
+	var load func(_ *skylark.Thread, module string) (skylark.StringDict, error)
+	load = func(_ *skylark.Thread, module string) (skylark.StringDict, error) {
 		e, ok := cache[module]
 		if e == nil {
 			if ok {
@@ -85,8 +86,9 @@
 			// Add a placeholder to indicate "load in progress".
 			cache[module] = nil
 
-			// Load it.
+			// Load and initialize the module in a new thread.
 			data := fakeFilesystem[module]
+			thread := &skylark.Thread{Load: load}
 			globals := make(skylark.StringDict)
 			err := skylark.ExecFile(thread, module, data, globals)
 			e = &entry{globals, err}