Commit 566e3b20 authored by Robert Griesemer's avatar Robert Griesemer

- added language with respect to init() restrictions

R=r
DELTA=10  (9 added, 0 deleted, 1 changed)
OCL=16016
CL=16016
parent 43c5e63c
...@@ -2499,6 +2499,15 @@ functions defined in its source. Since a package may contain more ...@@ -2499,6 +2499,15 @@ functions defined in its source. Since a package may contain more
than one source file, there may be more than one init() function, but than one source file, there may be more than one init() function, but
only one per source file. only one per source file.
Initialization code may contain "go" statements, but the functions
they invoke do not begin execution until initialization is complete.
Therefore, all initialization code is run in a single thread of
execution.
Furthermore, an "init()" function cannot be referred to from anywhere
in a program. In particular, "init()" cannot be called explicitly, nor
can a pointer to "init" be assigned to a function variable).
If a package has imports, the imported packages are initialized If a package has imports, the imported packages are initialized
before initializing the package itself. If multiple packages import before initializing the package itself. If multiple packages import
a package P, P will be initialized only once. a package P, P will be initialized only once.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment