adata 934 src/load.c ScmAutoload *adata = SCM_NEW(ScmAutoload); adata 935 src/load.c SCM_SET_CLASS(adata, SCM_CLASS_AUTOLOAD); adata 936 src/load.c adata->name = name; adata 937 src/load.c adata->module = where; adata 938 src/load.c adata->path = path; adata 939 src/load.c adata->import_from = import_from; adata 940 src/load.c adata->loaded = FALSE; adata 941 src/load.c adata->value = SCM_UNBOUND; adata 942 src/load.c (void)SCM_INTERNAL_MUTEX_INIT(adata->mutex); adata 943 src/load.c (void)SCM_INTERNAL_COND_INIT(adata->cv); adata 944 src/load.c adata->locker = NULL; adata 945 src/load.c return SCM_OBJ(adata); adata 986 src/load.c ScmObj Scm_LoadAutoload(ScmAutoload *adata) adata 993 src/load.c if (adata->loaded) { adata 994 src/load.c return adata->value; adata 998 src/load.c (void)SCM_INTERNAL_MUTEX_LOCK(adata->mutex); adata 1000 src/load.c if (adata->loaded) break; adata 1001 src/load.c if (adata->locker == NULL) { adata 1002 src/load.c adata->locker = vm; adata 1003 src/load.c } else if (adata->locker == vm) { adata 1006 src/load.c } else if (adata->locker->state == SCM_VM_TERMINATED) { adata 1009 src/load.c adata->locker = vm; adata 1011 src/load.c (void)SCM_INTERNAL_COND_WAIT(adata->cv, adata->mutex); adata 1015 src/load.c SCM_INTERNAL_MUTEX_UNLOCK(adata->mutex); adata 1016 src/load.c if (adata->loaded) { adata 1018 src/load.c return adata->value; adata 1022 src/load.c adata->locker = NULL; adata 1023 src/load.c SCM_INTERNAL_COND_SIGNAL(adata->cv); adata 1025 src/load.c adata->module, adata->name); adata 1030 src/load.c vm->module = adata->module; adata 1031 src/load.c Scm_Require(SCM_OBJ(adata->path)); adata 1034 src/load.c if (adata->import_from) { adata 1037 src/load.c ScmModule *m = Scm_FindModule(adata->import_from, adata 1042 src/load.c adata->import_from, adata->path); adata 1044 src/load.c f = Scm_FindBinding(SCM_MODULE(m), adata->name, FALSE); adata 1045 src/load.c g = Scm_FindBinding(adata->module, adata->name, FALSE); adata 1048 src/load.c adata->value = SCM_GLOC_GET(f); adata 1049 src/load.c if (SCM_UNBOUNDP(adata->value) || SCM_AUTOLOADP(adata->value)) { adata 1051 src/load.c adata->name, adata->import_from); adata 1053 src/load.c SCM_GLOC_SET(g, adata->value); adata 1057 src/load.c ScmGloc *g = Scm_FindBinding(adata->module, adata->name, FALSE); adata 1059 src/load.c adata->value = SCM_GLOC_GET(g); adata 1060 src/load.c if (SCM_UNBOUNDP(adata->value) || SCM_AUTOLOADP(adata->value)) { adata 1062 src/load.c adata->name, adata->path); adata 1066 src/load.c adata->locker = NULL; adata 1068 src/load.c SCM_INTERNAL_COND_SIGNAL(adata->cv); adata 1072 src/load.c adata->loaded = TRUE; adata 1073 src/load.c adata->locker = NULL; adata 1074 src/load.c SCM_INTERNAL_COND_SIGNAL(adata->cv); adata 1075 src/load.c return adata->value; adata 220 src/macro.c static ScmMacro *resolve_macro_autoload(ScmAutoload *adata) adata 222 src/macro.c ScmObj mac = Scm_LoadAutoload(adata); adata 224 src/macro.c Scm_Error("tried to autoload macro %S, but it yields non-macro object: %S", adata->name, mac); adata 235 src/macro.c ScmObj Scm_MakeMacroAutoload(ScmSymbol *name, ScmAutoload *adata) adata 237 src/macro.c return Scm_MakeMacro(name, macro_autoload, (void*)adata);