equal
deleted
inserted
replaced
19 |
19 |
20 LazyMethod comment:' |
20 LazyMethod comment:' |
21 COPYRIGHT (c) 1994 by Claus Gittinger |
21 COPYRIGHT (c) 1994 by Claus Gittinger |
22 All Rights Reserved |
22 All Rights Reserved |
23 |
23 |
24 $Header: /cvs/stx/stx/libcomp/LazyMethod.st,v 1.10 1995-05-16 17:11:47 claus Exp $ |
24 $Header: /cvs/stx/stx/libcomp/LazyMethod.st,v 1.11 1995-05-18 15:38:13 claus Exp $ |
25 '! |
25 '! |
26 |
26 |
27 !LazyMethod class methodsFor:'documentation'! |
27 !LazyMethod class methodsFor:'documentation'! |
28 |
28 |
29 copyright |
29 copyright |
40 " |
40 " |
41 ! |
41 ! |
42 |
42 |
43 version |
43 version |
44 " |
44 " |
45 $Header: /cvs/stx/stx/libcomp/LazyMethod.st,v 1.10 1995-05-16 17:11:47 claus Exp $ |
45 $Header: /cvs/stx/stx/libcomp/LazyMethod.st,v 1.11 1995-05-18 15:38:13 claus Exp $ |
46 " |
46 " |
47 ! |
47 ! |
48 |
48 |
49 documentation |
49 documentation |
50 " |
50 " |
70 CompilationFailedSignal := ExecutionErrorSignal newSignalMayProceed:true. |
70 CompilationFailedSignal := ExecutionErrorSignal newSignalMayProceed:true. |
71 CompilationFailedSignal nameClass:self message:#compilationFailedSignal. |
71 CompilationFailedSignal nameClass:self message:#compilationFailedSignal. |
72 CompilationFailedSignal notifierString:'compilation of lazy method failed'. |
72 CompilationFailedSignal notifierString:'compilation of lazy method failed'. |
73 |
73 |
74 Access := Semaphore forMutualExclusion. |
74 Access := Semaphore forMutualExclusion. |
|
75 "/ Access := RecursionLock new. |
75 ] |
76 ] |
76 ! ! |
77 ! ! |
77 |
78 |
78 !LazyMethod class methodsFor:'Signal constants'! |
79 !LazyMethod class methodsFor:'Signal constants'! |
79 |
80 |
102 Otherwise, we might get into trouble, if (due to a timeout) |
103 Otherwise, we might get into trouble, if (due to a timeout) |
103 another recompile is forced while compiling this one ... |
104 another recompile is forced while compiling this one ... |
104 (happened when autoloading animation demos) |
105 (happened when autoloading animation demos) |
105 " |
106 " |
106 [ |
107 [ |
107 Access wait. |
108 Access critical:[ |
108 [ |
|
109 m := self asByteCodeMethod. |
109 m := self asByteCodeMethod. |
110 ] valueNowOrOnUnwindDo:[ |
|
111 Access signal. |
|
112 ]. |
110 ]. |
113 ] valueUninterruptably. |
111 ] valueUninterruptably. |
114 |
112 |
115 (m isNil or:[(byteCode := m byteCode) isNil]) ifTrue:[ |
113 (m isNil or:[(byteCode := m byteCode) isNil]) ifTrue:[ |
116 " |
114 " |