Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ CreateValue()

T System.Lazy< T, TMetadata >.CreateValue ( )
inlineprivate

Definition at line 180 of file Lazy.cs.

181 {
182 LazyHelper state = _state;
183 if (state != null)
184 {
185 switch (state.State)
186 {
189 break;
190 case LazyState.NoneViaFactory:
192 break;
193 case LazyState.PublicationOnlyViaConstructor:
195 break;
196 case LazyState.PublicationOnlyViaFactory:
198 break;
199 case LazyState.PublicationOnlyWait:
201 break;
202 case LazyState.ExecutionAndPublicationViaConstructor:
203 ExecutionAndPublication(state, useDefaultConstructor: true);
204 break;
205 case LazyState.ExecutionAndPublicationViaFactory:
206 ExecutionAndPublication(state, useDefaultConstructor: false);
207 break;
208 default:
209 state.ThrowException();
210 break;
211 }
212 }
213 return Value;
214 }
static readonly LazyHelper NoneViaConstructor
Definition LazyHelper.cs:9
T Value
Definition Lazy.cs:37
void PublicationOnlyWaitForOtherThreadToPublish()
Definition Lazy.cs:171
volatile LazyHelper _state
Definition Lazy.cs:11
void ViaFactory(LazyThreadSafetyMode mode)
Definition Lazy.cs:104
void ViaConstructor()
Definition Lazy.cs:98
LazyState
Definition LazyState.cs:4
@ PublicationOnlyViaConstructor

References System.Lazy< T, TMetadata >._state, System.Threading.ExecutionAndPublication, System.LazyHelper.NoneViaConstructor, System.PublicationOnlyViaConstructor, System.PublicationOnlyViaFactory, System.Lazy< T, TMetadata >.PublicationOnlyWaitForOtherThreadToPublish(), System.state, System.Lazy< T, TMetadata >.Value, System.Lazy< T, TMetadata >.ViaConstructor(), and System.Lazy< T, TMetadata >.ViaFactory().